[OpenLayers-Commits] r11029 - in sandbox/tschaub/xdomain: . build examples lib lib/OpenLayers lib/OpenLayers/BaseTypes lib/OpenLayers/Control lib/OpenLayers/Feature lib/OpenLayers/Filter lib/OpenLayers/Format lib/OpenLayers/Format/ArcXML lib/OpenLayers/Format/CSWGetDomain lib/OpenLayers/Format/CSWGetRecords lib/OpenLayers/Format/Filter lib/OpenLayers/Format/GML lib/OpenLayers/Format/OWSCommon lib/OpenLayers/Format/OWSContext lib/OpenLayers/Format/SLD lib/OpenLayers/Format/SOSCapabilities lib/OpenLayers/Format/WFSCapabilities lib/OpenLayers/Format/WFST lib/OpenLayers/Format/WMC lib/OpenLayers/Format/WMSCapabilities lib/OpenLayers/Format/WMSDescribeLayer lib/OpenLayers/Format/WMTSCapabilities lib/OpenLayers/Geometry lib/OpenLayers/Handler lib/OpenLayers/Layer lib/OpenLayers/Layer/Google lib/OpenLayers/Layer/MapServer lib/OpenLayers/Layer/Vector lib/OpenLayers/Layer/WMS lib/OpenLayers/Marker lib/OpenLayers/Popup lib/OpenLayers/Protocol lib/OpenLayers/Protocol/SOS lib/OpenLayers/Protocol/SQL lib/OpenLayers/Protocol/WFS lib/OpenLayers/Renderer lib/OpenLayers/Request lib/OpenLayers/Strategy lib/OpenLayers/Symbolizer lib/OpenLayers/Tile lib/OpenLayers/Tile/Image lib/Rico tests tests/Control tests/Format tests/Geometry tests/Handler tests/Layer tests/Protocol tests/Renderer tests/Request tests/manual theme/default tools

commits-20090109 at openlayers.org commits-20090109 at openlayers.org
Wed Jan 12 08:06:30 EST 2011


Author: pgiraud
Date: 2011-01-12 05:06:30 -0800 (Wed, 12 Jan 2011)
New Revision: 11029

Added:
   sandbox/tschaub/xdomain/examples/bing-tiles.html
   sandbox/tschaub/xdomain/examples/bing-tiles.js
   sandbox/tschaub/xdomain/examples/graphic-name.js
   sandbox/tschaub/xdomain/examples/simplify-linestring.html
   sandbox/tschaub/xdomain/examples/simplify-linestring.js
   sandbox/tschaub/xdomain/examples/tile-extent.html
   sandbox/tschaub/xdomain/examples/tile-extent.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Bing.js
   sandbox/tschaub/xdomain/tests/Layer/Bing.html
   sandbox/tschaub/xdomain/tests/manual/google-v3-resize.html
Modified:
   sandbox/tschaub/xdomain/
   sandbox/tschaub/xdomain/build/full.cfg
   sandbox/tschaub/xdomain/build/library.cfg
   sandbox/tschaub/xdomain/build/license.txt
   sandbox/tschaub/xdomain/build/lite.cfg
   sandbox/tschaub/xdomain/examples/google-v3.html
   sandbox/tschaub/xdomain/examples/graphic-name.html
   sandbox/tschaub/xdomain/examples/osm-google.html
   sandbox/tschaub/xdomain/lib/OpenLayers.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Ajax.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Bounds.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Class.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Element.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/LonLat.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Pixel.js
   sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Size.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Console.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ArgParser.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Attribution.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Button.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragPan.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/DrawFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/EditingToolbar.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/GetFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Graticule.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/KeyboardDefaults.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/LayerSwitcher.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Measure.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ModifyFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseDefaults.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/MousePosition.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseToolbar.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavToolbar.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Navigation.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavigationHistory.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/OverviewMap.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Pan.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanPanel.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoom.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoomBar.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Panel.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Permalink.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/SLDSelect.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Scale.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ScaleLine.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/SelectFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Snapping.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/Split.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/TransformFeature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMSGetFeatureInfo.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMTSGetFeatureInfo.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomBox.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomIn.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomOut.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomPanel.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomToMaxExtent.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Events.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Feature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Feature/Vector.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Feature/WFS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Filter.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Comparison.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Filter/FeatureId.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Logical.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Spatial.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML/Features.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Atom.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Context.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/Base.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v2.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v3.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GPX.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoJSON.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoRSS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/JSON.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/KML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OSM.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext/v0_3_1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetObservation.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/Text.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSDescribeFeatureType.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WKT.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSGetFeatureInfo.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Format/XML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Collection.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Curve.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LineString.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LinearRing.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiLineString.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPoint.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPolygon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Point.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Polygon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Rectangle.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Surface.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Box.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Click.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Drag.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Feature.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Hover.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Keyboard.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/MouseWheel.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Path.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Point.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Polygon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Handler/RegularPolygon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Icon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Lang.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcGIS93Rest.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcIMS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Boxes.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/EventPane.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/FixedZoomLevels.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GeoRSS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google/v3.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Grid.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/HTTPRequest.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Image.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMap.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMapCache.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapGuide.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer/Untiled.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Markers.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MultiMap.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/PointTrack.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/SphericalMercator.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TMS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Text.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TileCache.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector/RootContainer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/VirtualEarth.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WFS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Post.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Untiled.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMTS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WorldWind.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/XYZ.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Yahoo.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Zoomify.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Map.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Marker.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Marker/Box.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Popup.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Anchored.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Popup/AnchoredBubble.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Framed.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Popup/FramedCloud.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Projection.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/FilterSerializer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/HTTP.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL/Gears.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_0_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_1_0.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Renderer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Canvas.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Elements.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/SVG.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/VML.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Request.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Request/XMLHttpRequest.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Rule.js
   sandbox/tschaub/xdomain/lib/OpenLayers/SingleFile.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/BBOX.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Cluster.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Filter.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Fixed.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Paging.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Refresh.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Save.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Style.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Style2.js
   sandbox/tschaub/xdomain/lib/OpenLayers/StyleMap.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Line.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Point.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Polygon.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Raster.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Text.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Tile.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image/IFrame.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Tile/WFS.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Tween.js
   sandbox/tschaub/xdomain/lib/OpenLayers/Util.js
   sandbox/tschaub/xdomain/lib/Rico/Color.js
   sandbox/tschaub/xdomain/lib/Rico/Corner.js
   sandbox/tschaub/xdomain/license.txt
   sandbox/tschaub/xdomain/readme.txt
   sandbox/tschaub/xdomain/tests/Control/Snapping.html
   sandbox/tschaub/xdomain/tests/Control/WMSGetFeatureInfo.html
   sandbox/tschaub/xdomain/tests/Format/WKT.html
   sandbox/tschaub/xdomain/tests/Geometry/Collection.html
   sandbox/tschaub/xdomain/tests/Geometry/LineString.html
   sandbox/tschaub/xdomain/tests/Handler/Drag.html
   sandbox/tschaub/xdomain/tests/Layer/Vector.html
   sandbox/tschaub/xdomain/tests/Layer/WMS.html
   sandbox/tschaub/xdomain/tests/Protocol/HTTP.html
   sandbox/tschaub/xdomain/tests/Protocol/WFS.html
   sandbox/tschaub/xdomain/tests/Renderer/SVG.html
   sandbox/tschaub/xdomain/tests/Request.html
   sandbox/tschaub/xdomain/tests/Request/XMLHttpRequest.html
   sandbox/tschaub/xdomain/tests/Util.html
   sandbox/tschaub/xdomain/tests/list-tests.html
   sandbox/tschaub/xdomain/theme/default/style.css
   sandbox/tschaub/xdomain/tools/mergejs.py
   sandbox/tschaub/xdomain/tools/toposort.py
Log:
svn merge -r 10939:HEAD http://svn.openlayers.org/trunk/openlayers .


Property changes on: sandbox/tschaub/xdomain
___________________________________________________________________
Modified: svn:mergeinfo
   - /sandbox/roberthl/openlayers:9745-9748
   + /sandbox/roberthl/openlayers:9745-9748
/trunk/openlayers:10940-11028

Modified: sandbox/tschaub/xdomain/build/full.cfg
===================================================================
--- sandbox/tschaub/xdomain/build/full.cfg	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/build/full.cfg	2011-01-12 13:06:30 UTC (rev 11029)
@@ -2,11 +2,6 @@
 # like Renderers and Formats.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
-Rico/Corner.js
 
 [last]
 

Modified: sandbox/tschaub/xdomain/build/library.cfg
===================================================================
--- sandbox/tschaub/xdomain/build/library.cfg	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/build/library.cfg	2011-01-12 13:06:30 UTC (rev 11029)
@@ -3,11 +3,6 @@
 # is specified.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
-Rico/Corner.js
 
 [last]
 

Modified: sandbox/tschaub/xdomain/build/license.txt
===================================================================
--- sandbox/tschaub/xdomain/build/license.txt	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/build/license.txt	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 Clear BSD
   license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt
   for the full text of the license.
 

Modified: sandbox/tschaub/xdomain/build/lite.cfg
===================================================================
--- sandbox/tschaub/xdomain/build/lite.cfg	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/build/lite.cfg	2011-01-12 13:06:30 UTC (rev 11029)
@@ -5,10 +5,6 @@
 # Web Mapping BOF.
 
 [first]
-OpenLayers/SingleFile.js
-OpenLayers/BaseTypes.js
-OpenLayers/BaseTypes/Class.js
-OpenLayers/Util.js
 
 [last]
 

Copied: sandbox/tschaub/xdomain/examples/bing-tiles.html (from rev 11028, trunk/openlayers/examples/bing-tiles.html)
===================================================================
--- sandbox/tschaub/xdomain/examples/bing-tiles.html	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/bing-tiles.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <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: 5px;
+        right: inherit;
+        bottom: 5px; 
+    }
+    </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>

Copied: sandbox/tschaub/xdomain/examples/bing-tiles.js (from rev 11028, trunk/openlayers/examples/bing-tiles.js)
===================================================================
--- sandbox/tschaub/xdomain/examples/bing-tiles.js	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/bing-tiles.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,26 @@
+// 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"
+});
+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()
+), 12);

Modified: sandbox/tschaub/xdomain/examples/google-v3.html
===================================================================
--- sandbox/tschaub/xdomain/examples/google-v3.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/examples/google-v3.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -5,7 +5,7 @@
         <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.2&amp;sensor=false"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="google-v3.js"></script>
     </head>

Modified: sandbox/tschaub/xdomain/examples/graphic-name.html
===================================================================
--- sandbox/tschaub/xdomain/examples/graphic-name.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/examples/graphic-name.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -1,91 +1,39 @@
-<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">
-        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">
-        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">
+        <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 &quot;star&quot;, &quot;cross&quot;, 
+                &quot;x&quot;, &quot;square&quot;, &quot;triangle&quot;, and 
+                &quot;circle&quot; as value for the graphicName property of a 
+                symbolizer.
+            </p>
+            <p>
+                The named symbols &quot;lightning&quot;, &quot;rectangle&quot; 
+                and &quot;church&quot; 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>

Copied: sandbox/tschaub/xdomain/examples/graphic-name.js (from rev 11028, trunk/openlayers/examples/graphic-name.js)
===================================================================
--- sandbox/tschaub/xdomain/examples/graphic-name.js	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/graphic-name.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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();
+}

Modified: sandbox/tschaub/xdomain/examples/osm-google.html
===================================================================
--- sandbox/tschaub/xdomain/examples/osm-google.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/examples/osm-google.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -5,7 +5,7 @@
         <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.2&amp;sensor=false"></script>
         <script src="../lib/OpenLayers.js"></script>
         <script src="osm-google.js"></script>
     </head>

Copied: sandbox/tschaub/xdomain/examples/simplify-linestring.html (from rev 11028, trunk/openlayers/examples/simplify-linestring.html)
===================================================================
--- sandbox/tschaub/xdomain/examples/simplify-linestring.html	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/simplify-linestring.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <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 &quot;simplify&quot; that implements 
+			the Douglas-Peucker algorithm to remove &quot;insignificant&quot; 
+			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 &quot;insignificant&quot; 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 &quot;Start animation&quot; to get 
+                results for increasing tolerance-factors from 0.02 to 1.0. The
+                animation can be paused by clicking on the button &quot;Stop
+                animation&quot;. 
+            </p>
+            <p>
+                The LineString represents a part of the coastline of 
+                <a href="http://www.openstreetmap.org/?lat=54.7309684753418&amp;lon=83.1809234619141&amp;zoom=11">this 
+                place southeast of Novosibirsk in Russia</a> &mdash; 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 
+                &amp; 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>

Copied: sandbox/tschaub/xdomain/examples/simplify-linestring.js (from rev 11028, trunk/openlayers/examples/simplify-linestring.js)
===================================================================
--- sandbox/tschaub/xdomain/examples/simplify-linestring.js	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/simplify-linestring.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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;
+})();

Copied: sandbox/tschaub/xdomain/examples/tile-extent.html (from rev 11028, trunk/openlayers/examples/tile-extent.html)
===================================================================
--- sandbox/tschaub/xdomain/examples/tile-extent.html	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/tile-extent.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>OpenLayers Tile Extent 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">
+    </head>
+    <body>
+        <h1 id="title">Tile Extent</h1>
+        <div id="tags">
+            grid, tileExtent
+        </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 extent configured on the server, use the layer's 
+                <code>tileExtent</code> property.
+            </p><p>
+                View the <a href="tile-extent.js" target="_blank">tile-extent.js</a>
+                source to see how this is done
+            </p>
+        </div>
+        <script src="../lib/OpenLayers.js"></script>
+        <script src="tile-extent.js"></script>
+    </body>
+</html>

Copied: sandbox/tschaub/xdomain/examples/tile-extent.js (from rev 11028, trunk/openlayers/examples/tile-extent.js)
===================================================================
--- sandbox/tschaub/xdomain/examples/tile-extent.js	                        (rev 0)
+++ sandbox/tschaub/xdomain/examples/tile-extent.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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"},
+            {tileExtent: new OpenLayers.Bounds(-180, -90, 180, 90)}
+        )
+    ],
+    center: new OpenLayers.LonLat(-110, 45),
+    zoom: 0
+});

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Ajax.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Ajax.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Ajax.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 = "";

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Bounds.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Bounds.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Bounds.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Class.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Class.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Class.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. 
@@ -106,3 +110,50 @@
        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;
+        }
+    }
+    return destination;
+};

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Element.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Element.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Element.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 = {

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/LonLat.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/LonLat.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/LonLat.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Pixel.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Pixel.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Pixel.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Size.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Size.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes/Size.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/BaseTypes.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
  
@@ -666,7 +660,7 @@
                     // check offset
                     if (type !== "Z") {
                         var hoursOffset = parseInt(type, 10);
-                        var minutesOffset = parseInt(match[8]) || 0;
+                        var minutesOffset = parseInt(match[8], 10) || 0;
                         var offset = -1000 * (60 * (hoursOffset * 60) + minutesOffset * 60);
                         date = new Date(date.getTime() + offset);
                     }

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Console.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Console.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Console.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ArgParser.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ArgParser.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ArgParser.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Attribution.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Attribution.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Attribution.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Button.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Button.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Button.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragPan.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragPan.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/DragPan.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/DrawFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/DrawFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/DrawFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/EditingToolbar.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/EditingToolbar.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/EditingToolbar.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/GetFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/GetFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/GetFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Graticule.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Graticule.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Graticule.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/KeyboardDefaults.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/KeyboardDefaults.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/KeyboardDefaults.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/LayerSwitcher.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/LayerSwitcher.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/LayerSwitcher.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Measure.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Measure.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Measure.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ModifyFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ModifyFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ModifyFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseDefaults.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseDefaults.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseDefaults.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/MousePosition.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/MousePosition.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/MousePosition.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseToolbar.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseToolbar.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/MouseToolbar.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavToolbar.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavToolbar.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavToolbar.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Navigation.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Navigation.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Navigation.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavigationHistory.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavigationHistory.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/NavigationHistory.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/OverviewMap.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/OverviewMap.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/OverviewMap.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Pan.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Pan.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Pan.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanPanel.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanPanel.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanPanel.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoom.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoom.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoom.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoomBar.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoomBar.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/PanZoomBar.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Panel.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Panel.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Panel.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Permalink.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Permalink.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Permalink.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/SLDSelect.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/SLDSelect.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/SLDSelect.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Scale.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Scale.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Scale.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ScaleLine.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ScaleLine.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ScaleLine.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/SelectFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/SelectFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/SelectFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Snapping.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Snapping.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Snapping.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
      * 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
@@ -436,10 +444,21 @@
      *     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 @@
      *     
      * 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 = {};

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/Split.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/Split.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/Split.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/TransformFeature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/TransformFeature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/TransformFeature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMSGetFeatureInfo.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMSGetFeatureInfo.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMSGetFeatureInfo.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -345,28 +345,36 @@
             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) ?
+        }, (parseFloat(firstLayer.params.VERSION) >= 1.3) ?
             {
-                crs: this.map.getProjection(),
+                crs: projection,
                 i: clickPosition.x,
                 j: clickPosition.y
             } :
             {
-                srs: this.map.getProjection(),
+                srs: projection,
                 x: clickPosition.x,
                 y: clickPosition.y
             }

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMTSGetFeatureInfo.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/WMTSGetFeatureInfo.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomBox.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomBox.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomBox.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomIn.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomIn.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomIn.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomOut.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomOut.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomOut.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomPanel.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomPanel.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomPanel.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomToMaxExtent.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomToMaxExtent.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control/ZoomToMaxExtent.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Control.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Control.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Control.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Events.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Events.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Events.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -742,7 +742,7 @@
 
         // fast path
         if(!listeners || listeners.length == 0) {
-            return;
+            return undefined;
         }
 
         // prep evt object with object & div references
@@ -758,7 +758,8 @@
         // 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

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Feature/Vector.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Feature/Vector.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Feature/Vector.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -267,7 +267,7 @@
 
         if(!this.layer || !this.geometry.move){
             //do nothing if no layer or immoveable geometry
-            return;
+            return undefined;
         }
 
         var pixel;

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Feature/WFS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Feature/WFS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Feature/WFS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Feature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Feature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Feature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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/Marker.js
  * @requires OpenLayers/Popup/AnchoredBubble.js

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Comparison.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Comparison.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Comparison.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -109,9 +109,10 @@
         }
         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 +121,7 @@
                 }
                 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());

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Filter/FeatureId.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Filter/FeatureId.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Filter/FeatureId.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Logical.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Logical.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Logical.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
      * {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 @@
                 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 @@
             case OpenLayers.Filter.Logical.NOT:
                 return (!this.filters[0].evaluate(context));
         }
+        return undefined;
     },
     
     /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Spatial.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Spatial.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Filter/Spatial.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Filter.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Filter.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Filter.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML/Features.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML/Features.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML/Features.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/ArcXML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Atom.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Atom.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Atom.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetDomain.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/CSWGetRecords.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Context.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Context.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Context.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Filter.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/Base.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/Base.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/Base.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v2.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v2.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v2.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v3.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v3.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML/v3.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GPX.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GPX.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GPX.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -162,10 +162,10 @@
         // 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] :

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoJSON.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoJSON.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoJSON.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoRSS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoRSS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/GeoRSS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/JSON.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/JSON.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/JSON.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
     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.
      *
@@ -87,15 +95,18 @@
      * {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 +118,7 @@
                  *     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 +138,16 @@
                     }
                     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 +169,9 @@
         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);
             }

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/KML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/KML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/KML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -12,6 +12,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 +354,10 @@
         
         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;
             }

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OSM.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OSM.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OSM.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -374,13 +374,14 @@
             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);

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSCommon/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext/v0_3_1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext/v0_3_1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext/v0_3_1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/OWSContext.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SLD.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSCapabilities.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetObservation.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetObservation.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/SOSGetObservation.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/Text.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/Text.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/Text.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSCapabilities.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSDescribeFeatureType.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSDescribeFeatureType.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFSDescribeFeatureType.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WFST.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WKT.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WKT.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WKT.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
      */
     write: function(features) {
         var collection, geometry, type, data, isCollection;
-        if(features.constructor == Array) {
+        if (features.constructor == Array) {
             collection = features;
             isCollection = true;
         } else {
@@ -103,31 +103,45 @@
             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 +221,7 @@
         /**
          * 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 +232,19 @@
                            ')');
             }
             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(',');
         }
 
     },

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMC.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSCapabilities.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSDescribeLayer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSGetFeatureInfo.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSGetFeatureInfo.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMSGetFeatureInfo.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/WMTSCapabilities.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format/XML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format/XML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format/XML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Format.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Format.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Format.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Collection.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Collection.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Collection.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
      */
     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);
+        }
     },
 
     /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Curve.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Curve.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Curve.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LineString.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LineString.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LineString.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -547,6 +547,98 @@
         }
         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"
 });

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LinearRing.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LinearRing.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/LinearRing.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiLineString.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiLineString.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiLineString.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPoint.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPoint.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPoint.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPolygon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPolygon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/MultiPolygon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Point.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Point.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Point.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Polygon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Polygon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Polygon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Rectangle.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Rectangle.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Rectangle.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Surface.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Surface.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry/Surface.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Geometry.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Geometry.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Geometry.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Box.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Box.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Box.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,22 +43,25 @@
      *
      * 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 "done" property whose value is a
+     *     callback to be called when the box drag operation is finished.  
+     *     The callback should expect to recieve 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.
      * options - {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}
+        );
     },
 
     /**
@@ -90,7 +93,7 @@
     */
     startBox: function (xy) {
         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);

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Click.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Click.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Click.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Drag.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Drag.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Drag.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,8 +94,7 @@
     
     /**
      * 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,6 +116,19 @@
      */
     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}});
+            };
+        }
     },
     
     /**
@@ -232,7 +244,7 @@
                     // registered with the map
                     this.setEvent(evt);
                 } else {
-                    this.destroyDocumentEvents();
+                    this.removeDocumentEvents();
                 }
             }
             if (this.interval > 0) {
@@ -272,7 +284,7 @@
         if (this.started) {
             if(this.documentDrag === true && this.documentEvents) {
                 this.adjustXY(evt);
-                this.destroyDocumentEvents();
+                this.removeDocumentEvents();
             }
             var dragged = (this.start != this.last);
             this.started = false;
@@ -301,17 +313,9 @@
      * {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.viewPortDiv)) {
             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; 
@@ -403,18 +407,28 @@
     },
     
     /**
-     * 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.
+     * Method: addDocumentEvents
+     * Start observing document events 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;
+    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"
 });

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Feature.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Feature.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Feature.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Hover.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Hover.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Hover.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Keyboard.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Keyboard.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Keyboard.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/MouseWheel.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/MouseWheel.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/MouseWheel.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Path.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Path.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Path.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Point.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Point.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Point.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Polygon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Polygon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/Polygon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -162,7 +162,7 @@
                 // ensure that new ring doesn't contain any other rings
                 var target;
                 outer: for (var i=rings.length-2; i>0; --i) {
-                    points = rings[i].components;
+                    var points = rings[i].components;
                     for (var j=0, jj=points.length; j<jj; ++j) {
                         if (ring.containsPoint(points[j])) {
                             modified = false;

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler/RegularPolygon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler/RegularPolygon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler/RegularPolygon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Handler.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Handler.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Handler.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Icon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Icon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Icon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Lang.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Lang.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Lang.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
@@ -101,7 +102,7 @@
      */
     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;

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcGIS93Rest.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcGIS93Rest.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcGIS93Rest.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcIMS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcIMS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/ArcIMS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Copied: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Bing.js (from rev 11028, trunk/openlayers/lib/OpenLayers/Layer/Bing.js)
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Bing.js	                        (rev 0)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Bing.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,291 @@
+/* Copyright (c) 2006-2011 by OpenLayers Contributors (see authors.txt for 
+ * full list 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
+ */
+
+/** 
+ * 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.
+ * 
+ * Inherits from:
+ *  - <OpenLayers.Layer.XYZ>
+ */
+OpenLayers.Layer.Bing = OpenLayers.Class(OpenLayers.Layer.XYZ, {
+
+    /**
+     * Property: attributionTemplate
+     * {String}
+     */
+    attributionTemplate: '<span class="olBingAttribution ${type}">' +
+         '<div><a target="_blank" href="http://www.bing.com/maps/">' +
+         '<img src="${logo}"></img></div></a>${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",
+
+    /**
+     * Constant: EVENT_TYPES
+     * {Array(String)} Supported application event types.  Register a listener
+     *     for a particular event with the following syntax:
+     * (code)
+     * layer.events.register(type, obj, listener);
+     * (end)
+     *
+     * Listeners will be called with a reference to an event object.  The
+     *     properties of this event depends on exactly what happened.
+     *
+     * All event objects have at least the following properties:
+     * object - {Object} A reference to layer.events.object.
+     * element - {DOMElement} A reference to layer.events.element.
+     *
+     * Supported map event types (in addition to those from <OpenLayers.Layer>):
+     * 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.
+     */
+    EVENT_TYPES: ["added"],
+
+    /**
+     * 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) {
+        // concatenate events specific to vector with those from the base
+        this.EVENT_TYPES =
+            OpenLayers.Layer.Bing.prototype.EVENT_TYPES.concat(
+            OpenLayers.Layer.prototype.EVENT_TYPES
+        );
+        
+        options = OpenLayers.Util.applyDefaults({
+            zoomOffset: 1,
+            maxResolution: 78271.51695,
+            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(this.type); 
+    },
+
+    /**
+     * Method: loadMetadata
+     *
+     * Parameters:
+     * imageryType - {String}
+     */
+    loadMetadata: function(imageryType) {
+        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 url = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/" +
+            imageryType + "?key=" + this.key + "&jsonp=" + this._callbackId +
+            "&include=ImageryProviders";
+        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]));
+        };
+        var resolution;
+        if (this.map && this.map.baseLayer === this && this.map.getCenter()) {
+            // if we are the current base layer and the map was centered
+            // already, we need to remember the current resolution to find a
+            // matching zoom level after the maxResolution changes
+            resolution = this.getResolution();
+        }
+        this.addOptions({
+            maxResolution: 78271.51695 / Math.pow(2, res.zoomMin - 1),
+            numZoomLevels: res.zoomMax - res.zoomMin + 1
+        });
+        // adjust zoom level to match the previous resolution - this triggers a
+        // moveTo on all layers.
+        resolution && this.map.zoomTo(this.getZoomForResolution(resolution));
+        // redraw to replace "blank.gif" tiles with real tiles
+        this.redraw();
+    },
+
+    /**
+     * 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) {
+            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});
+    },
+    
+    /**
+     * Method: setMap
+     */
+    setMap: function() {
+        OpenLayers.Layer.XYZ.prototype.setMap.apply(this, arguments);
+        if (this.map.getCenter()) {
+            this.updateAttribution();
+        }
+        this.map.events.register("moveend", this, this.updateAttribution);
+        // TODO: move this event to Layer
+        // http://trac.osgeo.org/openlayers/ticket/2983
+        this.events.triggerEvent("added", {map: this.map, layer: this});
+    },
+    
+    /**
+     * 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;
+};

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Boxes.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Boxes.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Boxes.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/EventPane.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/EventPane.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/EventPane.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/FixedZoomLevels.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/FixedZoomLevels.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/FixedZoomLevels.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GeoRSS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GeoRSS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/GeoRSS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google/v3.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google/v3.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google/v3.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Google.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Grid.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Grid.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Grid.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,6 +25,12 @@
      */
     tileSize: null,
     
+    /**
+     * APIProperty: tileExtent
+     * {<OpenLayers.Bounds>}
+     */
+    tileExtent: null,
+    
     /** APIProperty: tileOptions
      *  {Object} optional configuration options for <OpenLayers.Tile> instances
      *  created by this Layer, if supported by the tile class.
@@ -446,7 +452,7 @@
      * {OpenLayers.Bounds}
      */
     getMaxExtent: function() {
-        return this.maxExtent;
+        return this.tileExtent || this.maxExtent;
     },
     
     /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/HTTPRequest.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/HTTPRequest.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/HTTPRequest.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Image.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Image.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Image.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMap.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMap.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMap.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMapCache.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMapCache.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/KaMapCache.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapGuide.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapGuide.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapGuide.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer/Untiled.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer/Untiled.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer/Untiled.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MapServer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Markers.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Markers.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Markers.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MultiMap.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MultiMap.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/MultiMap.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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/EventPane.js
  * @requires OpenLayers/Layer/FixedZoomLevels.js
+ * @requires OpenLayers/Lang.js
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/PointTrack.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/PointTrack.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/PointTrack.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/SphericalMercator.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/SphericalMercator.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/SphericalMercator.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TMS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TMS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TMS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Text.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Text.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Text.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TileCache.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TileCache.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/TileCache.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector/RootContainer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector/RootContainer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector/RootContainer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Vector.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**
@@ -876,6 +877,36 @@
     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

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/VirtualEarth.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/VirtualEarth.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/VirtualEarth.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WFS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WFS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WFS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Post.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Post.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Post.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Untiled.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Untiled.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS/Untiled.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMTS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMTS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WMTS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WorldWind.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WorldWind.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/WorldWind.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/XYZ.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/XYZ.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/XYZ.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -107,7 +107,7 @@
     },    
 
     /**
-     * Method: getUrl
+     * Method: getURL
      *
      * Parameters:
      * bounds - {<OpenLayers.Bounds>}
@@ -118,6 +118,27 @@
      *          parameters
      */
     getURL: function (bounds) {
+        var xyz = this.getXYZ(bounds);
+        var url = this.url;
+        if (url instanceof Array) {
+            var s = '' + xyz.x + xyz.y + xyz.z;
+            url = this.selectUrl(s, url);
+        }
+        
+        return OpenLayers.String.format(url, xyz);
+    },
+    
+    /**
+     * Method: getXYZ
+     * Calculates x, y and z for the given bounds.
+     *
+     * Parameters:
+     * bounds - {<OpenLayers.Bounds>}
+     *
+     * Returns:
+     * {Object} - an object with x, y and z properties.
+     */
+    getXYZ: function(bounds) {
         var res = this.map.getResolution();
         var x = Math.round((bounds.left - this.maxExtent.left) 
             / (res * this.tileSize.w));
@@ -127,16 +148,7 @@
             OpenLayers.Util.indexOf(this.serverResolutions, res) :
             this.map.getZoom() + this.zoomOffset;
 
-        var url = this.url;
-        var s = '' + x + y + z;
-        if (url instanceof Array)
-        {
-            url = this.selectUrl(s, url);
-        }
-        
-        var path = OpenLayers.String.format(url, {'x': x, 'y': y, 'z': z});
-
-        return path;
+        return {'x': x, 'y': y, 'z': z};
     },
     
     /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Yahoo.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Yahoo.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Yahoo.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Zoomify.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Zoomify.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer/Zoomify.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -219,7 +219,7 @@
      */
     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));

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Layer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Layer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Layer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Map.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Map.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Map.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Marker/Box.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Marker/Box.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Marker/Box.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Marker.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Marker.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Marker.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Anchored.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Anchored.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Anchored.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Popup/AnchoredBubble.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Popup/AnchoredBubble.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Popup/AnchoredBubble.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Framed.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Framed.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Popup/Framed.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Popup/FramedCloud.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Popup/FramedCloud.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Popup/FramedCloud.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Popup.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Popup.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Popup.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.Popup
  * A popup is a small div that can opened and closed on the map.

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Projection.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Projection.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Projection.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/FilterSerializer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/FilterSerializer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/FilterSerializer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -33,6 +33,9 @@
                 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;

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/HTTP.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/HTTP.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/HTTP.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
@@ -79,6 +80,15 @@
     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.
      *

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SOS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL/Gears.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL/Gears.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL/Gears.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/SQL.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,7 +77,7 @@
      *     the response with the default format (WFST) and we need a different 
      *     format for reading. 
      */ 
-    readFormat: null,     
+    readFormat: null,
     
     /**
      * Property: readOptions
@@ -142,12 +142,26 @@
     },
 
     /**
-     * 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).
+     *
+     * 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)
      */
     read: function(options) {
         OpenLayers.Protocol.prototype.read.apply(this, arguments);
@@ -180,15 +194,18 @@
      * 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
-                if (this.readOptions && this.readOptions.output == "object") {
+                if (options.readOptions && options.readOptions.output == "object") {
                     OpenLayers.Util.extend(response, 
-                        this.parseResponse(request, this.readOptions));
+                        this.parseResponse(request, options.readOptions));
                 } else {
-                    response.features = this.parseResponse(request);
+                    response.features = this.parseResponse(request, options.readOptions);
                 }
                 response.code = OpenLayers.Protocol.Response.SUCCESS;
             } else {

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_0_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_0_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_0_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_1_0.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_1_0.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS/v1_1_0.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 @@
      * 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"
 });

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol/WFS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Protocol.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Protocol.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Protocol.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Canvas.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Canvas.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Canvas.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Elements.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Elements.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/Elements.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/SVG.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/SVG.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/SVG.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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,14 +50,6 @@
     symbolMetrics: 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:
@@ -70,7 +62,6 @@
         OpenLayers.Renderer.Elements.prototype.initialize.apply(this, 
                                                                 arguments);
         this.translationParameters = {x: 0, y: 0};
-        this.supportUse = (navigator.userAgent.toLowerCase().indexOf("applewebkit/5") == -1);
         
         this.symbolMetrics = {};
     },
@@ -215,7 +206,7 @@
                 if (style.externalGraphic) {
                     nodeType = "image";
                 } else if (this.isComplexSymbol(style.graphicName)) {
-                    nodeType = this.supportUse === false ? "svg" : "use";
+                    nodeType = "svg";
                 } else {
                     nodeType = "circle";
                 }
@@ -306,17 +297,17 @@
                     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
+                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"));
+                
                 node.setAttributeNS(null, "width", size);
                 node.setAttributeNS(null, "height", size);
                 node.setAttributeNS(null, "x", pos.x - offset);
@@ -334,18 +325,20 @@
             }
 
             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[id];
+                    node.firstChild.setAttributeNS(null, "transform", "rotate(" 
+                        + rotation + " " 
+                        + metrics[1] + " "
+                        + metrics[2] + ")");
                 }
             }
         }
@@ -951,7 +944,7 @@
      */
     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;

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/VML.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/VML.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Renderer/VML.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -219,6 +219,7 @@
 
         if (node._geometryClass === "OpenLayers.Geometry.Point") {
             if (style.externalGraphic) {
+                options.isFilled = true;
                 if (style.graphicTitle) {
                     node.title=style.graphicTitle;
                 } 

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Renderer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Renderer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Renderer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.
  *
@@ -181,8 +185,8 @@
                 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);
                     }

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Request/XMLHttpRequest.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Request/XMLHttpRequest.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Request/XMLHttpRequest.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
+})();

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Request.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Request.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Request.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -169,7 +169,7 @@
             request.send(config.data);
         } else {
             window.setTimeout(function(){
-                if (request._aborted !== true) {
+                if (request.readyState !== 0) { // W3C: 0-UNSENT
                     request.send(config.data);
                 }
             }, 0);

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Rule.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Rule.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Rule.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/SingleFile.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/SingleFile.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/SingleFile.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/BBOX.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/BBOX.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/BBOX.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Cluster.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Cluster.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Cluster.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Filter.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Filter.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Filter.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Fixed.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Fixed.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Fixed.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Paging.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Paging.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Paging.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Refresh.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Refresh.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Refresh.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Save.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Save.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy/Save.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Strategy.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Strategy.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Strategy.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Style.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Style.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Style.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Style2.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Style2.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Style2.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/StyleMap.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/StyleMap.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/StyleMap.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Line.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Line.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Line.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Point.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Point.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Point.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Polygon.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Polygon.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Polygon.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Raster.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Raster.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Raster.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Text.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Text.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer/Text.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Symbolizer.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.
  */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image/IFrame.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image/IFrame.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image/IFrame.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Tile/Image.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Tile/WFS.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Tile/WFS.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Tile/WFS.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Tile.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Tile.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Tile.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 
 /*

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Tween.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Tween.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Tween.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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
  */
 

Modified: sandbox/tschaub/xdomain/lib/OpenLayers/Util.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers/Util.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers/Util.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -1,16 +1,23 @@
-/* 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
@@ -53,53 +60,6 @@
     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
@@ -872,13 +832,11 @@
     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));
 };
 
 /**

Modified: sandbox/tschaub/xdomain/lib/OpenLayers.js
===================================================================
--- sandbox/tschaub/xdomain/lib/OpenLayers.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/OpenLayers.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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. */
@@ -72,9 +72,9 @@
      */
     if(!singleFile) {
         var jsfiles = new Array(
+            "OpenLayers/BaseTypes/Class.js",
             "OpenLayers/Util.js",
             "OpenLayers/BaseTypes.js",
-            "OpenLayers/BaseTypes/Class.js",
             "OpenLayers/BaseTypes/Bounds.js",
             "OpenLayers/BaseTypes/Element.js",
             "OpenLayers/BaseTypes/LonLat.js",
@@ -127,6 +127,7 @@
             "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",

Modified: sandbox/tschaub/xdomain/lib/Rico/Color.js
===================================================================
--- sandbox/tschaub/xdomain/lib/Rico/Color.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/Rico/Color.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -1,3 +1,8 @@
+/** 
+ * @requires OpenLayers/BaseTypes/Class.js
+ */
+
+
 /*
  * This file has been edited substantially from the Rico-released version by
  * the OpenLayers development team.
@@ -4,6 +9,7 @@
  *
  * 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) {

Modified: sandbox/tschaub/xdomain/lib/Rico/Corner.js
===================================================================
--- sandbox/tschaub/xdomain/lib/Rico/Corner.js	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/lib/Rico/Corner.js	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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) {

Modified: sandbox/tschaub/xdomain/license.txt
===================================================================
--- sandbox/tschaub/xdomain/license.txt	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/license.txt	2011-01-12 13:06:30 UTC (rev 11029)
@@ -2,7 +2,7 @@
 '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
+Copyright (c) 2005-2011 OpenLayers Contributors. See authors.txt for
   full list.
 
 All rights reserved.

Modified: sandbox/tschaub/xdomain/readme.txt
===================================================================
--- sandbox/tschaub/xdomain/readme.txt	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/readme.txt	2011-01-12 13:06:30 UTC (rev 11029)
@@ -1,7 +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

Modified: sandbox/tschaub/xdomain/tests/Control/Snapping.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Control/Snapping.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Control/Snapping.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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);

Modified: sandbox/tschaub/xdomain/tests/Control/WMSGetFeatureInfo.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Control/WMSGetFeatureInfo.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Control/WMSGetFeatureInfo.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -451,7 +451,38 @@
         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);
         var map = new OpenLayers.Map("map", {

Modified: sandbox/tschaub/xdomain/tests/Format/WKT.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Format/WKT.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Format/WKT.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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(12); 
 
         var format = new OpenLayers.Format.WKT(); 
          
@@ -205,14 +220,16 @@
         // 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");
  
     }
 

Modified: sandbox/tschaub/xdomain/tests/Geometry/Collection.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Geometry/Collection.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Geometry/Collection.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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 );

Modified: sandbox/tschaub/xdomain/tests/Geometry/LineString.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Geometry/LineString.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Geometry/LineString.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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>

Modified: sandbox/tschaub/xdomain/tests/Handler/Drag.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Handler/Drag.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Handler/Drag.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -251,7 +251,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.viewPortDiv.id,
                  "mouseout calls Util.mouseLeft with the correct element");
             return true;
         }

Copied: sandbox/tschaub/xdomain/tests/Layer/Bing.html (from rev 11028, trunk/openlayers/tests/Layer/Bing.html)
===================================================================
--- sandbox/tschaub/xdomain/tests/Layer/Bing.html	                        (rev 0)
+++ sandbox/tschaub/xdomain/tests/Layer/Bing.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -0,0 +1,113 @@
+<html>
+<head>
+  <script src="../../lib/OpenLayers.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(2);
+                       
+        var origProcessMetadata = OpenLayers.Layer.Bing.processMetadata;
+        var log = [];
+        OpenLayers.Layer.Bing.processMetadata = function(metadata) {
+            log.push(metadata);
+            origProcessMetadata.apply(this, arguments);
+        };
+        layer = new OpenLayers.Layer.Bing(options);
+        t.ok(layer instanceof OpenLayers.Layer.Bing, "returns OpenLayers.Layer.Bing object" );
+        t.delay_call(2, function() {
+            t.eq(log.length, 1, "processMetadata called");
+            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(2.0, 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(2.5, 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>

Modified: sandbox/tschaub/xdomain/tests/Layer/Vector.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Layer/Vector.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Layer/Vector.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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);

Modified: sandbox/tschaub/xdomain/tests/Layer/WMS.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Layer/WMS.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Layer/WMS.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -154,7 +154,6 @@
         map.destroy();
     }
 
-
     function test_Layer_WMS_clone (t) {
         t.plan(4);
 
@@ -381,6 +380,39 @@
 
     }
 
+    function test_tileExtent(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, tileExtent: new OpenLayers.Bounds(-180, -90, 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);

Modified: sandbox/tschaub/xdomain/tests/Protocol/HTTP.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Protocol/HTTP.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Protocol/HTTP.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -199,29 +199,43 @@
     }
 
     function test_read_bbox(t) {
-        t.plan(1);
-        var protocol = new OpenLayers.Protocol.HTTP();
+        t.plan(6);
 
-        // fake XHR request object
-        var request = {'status': 200};
-
         var _get = OpenLayers.Request.GET;
 
         var bounds = new OpenLayers.Bounds(1, 2, 3, 4);
         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;        
     }
 

Modified: sandbox/tschaub/xdomain/tests/Protocol/WFS.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Protocol/WFS.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Protocol/WFS.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -25,14 +25,15 @@
     }
 
     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",
-            parseResponse: function(request) {
+            parseResponse: function(request, options) {
                 t.eq(request.responseText, "foo", "parseResponse called properly");
+                t.eq(options, {foo: "bar"}, "parseResponse receives readOptions");
                 return "foo";
             }
         });
@@ -44,14 +45,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");
         }});
@@ -95,7 +95,6 @@
         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");
             obj.responseText = "foo";
-            obj.options = {};
             t.delay_call(0.1, function() {obj.callback.call(this)});
             return obj;
         };
@@ -229,6 +228,30 @@
         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);
 
@@ -248,7 +271,6 @@
         OpenLayers.Request.POST = function(obj) {
             obj.status = 200;
             obj.responseText = "foo";
-            obj.options = {};
             t.delay_call(0.1, function() {obj.callback.call(this)});
             return obj;
         };

Modified: sandbox/tschaub/xdomain/tests/Renderer/SVG.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Renderer/SVG.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Renderer/SVG.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -378,23 +378,7 @@
         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()) {
             t.plan(0);

Modified: sandbox/tschaub/xdomain/tests/Request/XMLHttpRequest.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Request/XMLHttpRequest.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Request/XMLHttpRequest.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -7,6 +7,51 @@
             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>

Modified: sandbox/tschaub/xdomain/tests/Request.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Request.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Request.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -409,6 +409,21 @@
         });
     }
 
+    function test_abort2(t) {
+        t.plan(0);
+        var fail = false;
+        OpenLayers.Request.XMLHttpRequest.onsend = function(args) {
+            fail = true;
+        }
+        t.delay_call(0.5, function() {
+            if (fail === true) {
+                t.fail("Send should not be called because request is aborted");
+            }
+            OpenLayers.Request.XMLHttpRequest.onsend = null;
+        });
+        var req = OpenLayers.Request.GET();
+        req.abort();
+    }
     </script>
 </head>
 <body>

Modified: sandbox/tschaub/xdomain/tests/Util.html
===================================================================
--- sandbox/tschaub/xdomain/tests/Util.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/Util.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -5,7 +5,16 @@
     var custom$ = function() {};
     window.$ = custom$;
   </script>
-  <script src="../lib/OpenLayers.js"></script>
+  <script src="../lib/OpenLayers/SingleFile.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes/Class.js"></script>
+  <script src="../lib/OpenLayers/Util.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes/Element.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes/LonLat.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes/Pixel.js"></script>
+  <script src="../lib/OpenLayers/BaseTypes/Size.js"></script>
+  <script src="../lib/OpenLayers/Lang.js"></script>
+  <script src="../lib/OpenLayers/Console.js"></script>
   <script type="text/javascript">
     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
     var map; 

Modified: sandbox/tschaub/xdomain/tests/list-tests.html
===================================================================
--- sandbox/tschaub/xdomain/tests/list-tests.html	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tests/list-tests.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -125,6 +125,7 @@
     <li>Layer.html</li>
     <li>Layer/ArcIMS.html</li> 
     <li>Layer/ArcGIS93Rest.html</li>
+    <li>Layer/Bing.html</li>
     <li>Layer/EventPane.html</li>
     <li>Layer/FixedZoomLevels.html</li>
     <li>Layer/GeoRSS.html</li>

Copied: sandbox/tschaub/xdomain/tests/manual/google-v3-resize.html (from rev 11028, trunk/openlayers/tests/manual/google-v3-resize.html)
===================================================================
--- sandbox/tschaub/xdomain/tests/manual/google-v3-resize.html	                        (rev 0)
+++ sandbox/tschaub/xdomain/tests/manual/google-v3-resize.html	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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>

Modified: sandbox/tschaub/xdomain/theme/default/style.css
===================================================================
--- sandbox/tschaub/xdomain/theme/default/style.css	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/theme/default/style.css	2011-01-12 13:06:30 UTC (rev 11029)
@@ -397,3 +397,10 @@
     top: 5px;
     right: 0px;
 }
+
+.olBingAttribution {
+    color: #DDD;
+}
+.olBingAttribution.road {
+    color: #333;
+}

Modified: sandbox/tschaub/xdomain/tools/mergejs.py
===================================================================
--- sandbox/tschaub/xdomain/tools/mergejs.py	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tools/mergejs.py	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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`?
@@ -44,6 +44,10 @@
 SUFFIX_JAVASCRIPT = ".js"
 
 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.
@@ -161,8 +165,6 @@
 
     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:
@@ -179,41 +181,31 @@
     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:

Modified: sandbox/tschaub/xdomain/tools/toposort.py
===================================================================
--- sandbox/tschaub/xdomain/tools/toposort.py	2011-01-12 12:16:59 UTC (rev 11028)
+++ sandbox/tschaub/xdomain/tools/toposort.py	2011-01-12 13:06:30 UTC (rev 11029)
@@ -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.
-#
+"""
+toposort.py
+Sorts dictionary keys based on lists of dependencies.
+"""
 
-class RecursionError( OverflowError, ValueError ):
-    '''Unable to calculate result because of recursive structure'''
-    
+class MissingDependency(Exception):
+    """Exception raised when a listed dependency is not in the dictionary."""
 
-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
+class Sorter(object):
+    def __init__(self, dependencies):
+        self.dependencies = dependencies
+        self.visited = set()
+        self.sorted = ()
     
-    dependencies = {}
-    inversedependencies = {}
-    if not nodes:
-        return []
-    if not routes:
-        return [nodes]
-    for node in nodes:
-        dependencies[ node ] = (0, node)
-        inversedependencies[ node ] = []
+    def sort(self):
+        for key in self.dependencies:
+            self._visit(key)
+        return 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
+    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,)
 
-
-
-
-
-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 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()



More information about the Commits mailing list