         	var b:Rectangle = layoutBounds.clone();
         	
         	// set x-axis position
-        	_xaxis.x1 = b.left;  _xaxis.y1 = b.bottom;
-        	_xaxis.x2 = b.right; _xaxis.y2 = b.bottom;
+        	if (_xrev) {
+        		_xaxis.x1 = b.right; _xaxis.y1 = b.bottom;
+        		_xaxis.x2 = b.left;  _xaxis.y2 = b.bottom;
+        	} else {
+        		_xaxis.x1 = b.left;  _xaxis.y1 = b.bottom;
+        		_xaxis.x2 = b.right; _xaxis.y2 = b.bottom;
+        	}
 
 			// set y-axis position
-			_yaxis.x1 = b.left;  _yaxis.y1 = b.bottom;
-        	_yaxis.x2 = b.left;  _yaxis.y2 = b.top;
+			if (_yrev) {
+				_yaxis.x1 = b.left;  _yaxis.y1 = b.top;
+        		_yaxis.x2 = b.left;  _yaxis.y2 = b.bottom;
+   			} else {
+   				_yaxis.x1 = b.left;  _yaxis.y1 = b.bottom;
+        		_yaxis.x2 = b.left;  _yaxis.y2 = b.top;
+   			}
         	
         	// gridline bias
         	_xaxis.lineBiasX = 0; _xaxis.lineBiasY = -b.height;

		private var _showXLine:Boolean;
		private var _showYLine:Boolean;
		private var _border:RectSprite;
		
		/** The x-axis. */
		public function get xAxis():Axis { return _xaxis; }

		public function get xLine():AxisGridLine { return _xline; }
		/** Grid line for the origin along the y-axis. */
		public function get yLine():AxisGridLine { return _yline; }
		
		/** Determines if the x-axis should be in reverse order. */
		public function get xReverse():Boolean { return _xrev; }
		public function set xReverse(b:Boolean):void { _xrev = b; }
		
		/** Determines if the y-axis should be in reverse order. */
		public function get yReverse():Boolean { return _yrev; }
		public function set yReverse(b:Boolean):void { _yrev = b; }
		
		/** The x-coordinate of the axes' origin point. */
		public function get originX():Number { return _xaxis.originX; }
