 	_root.Debug.warn('unknown color format: ' + value);
     return 0;
 }
+
+
+
+//=============================================================================
+// DEFINE OBJECT: LzCanvasGradient
+//
+// LzCanvasGradient is an opaque object, which is used for assigning to 
+// other attributes, e.g. fillStyle.  It is also used to add color stops.
+// An LzCanvasGradient is returned by LzDrawView.createRadialGradient or  
+// LzDrawView.createRadialGradient.
+//=============================================================================
+function LzCanvasGradient() {}
+
+//------------------------------------------------------------------------------
+// @keywords private
+//------------------------------------------------------------------------------
+LzCanvasGradient.prototype.__init = function(c, m) {
+    this._context = c;
+    this._m = m;
+    this._t = "linear";
+    this._c = [];
+    this._a = [];
+    this._o = [];
+}
+
+
+//------------------------------------------------------------------------------
+// Adds a new stop to a gradient. gradients are rendered such that at the starting point the colour at offset 0 is used, that at the ending point the color at offset 1 is used.  globalAlpha is stored for each gradient step added.
+// @param Number o: The offset this stop used for placement in the gradient.  Gradients are rendered such that for the starting point the colour at offset 0 is used, that at the ending point the color at offset 1 is used and all colors between those offsets are blended.  Must be less than 0 or greater than 1.
+// @param Number c: The color to be used at this color.  A hexadecimal value, e.g. 0xffffff
+//------------------------------------------------------------------------------
+LzCanvasGradient.prototype.addColorStop = function(o, c) {
+    this._o[this._o.length] = o * 255;
+    this._c[this._c.length] = LzDrawView.prototype.cssColorToLong(c);
+    this._a[this._a.length] = this._context.globalAlpha * 100;
+}
+
+//------------------------------------------------------------------------------
+// @keywords private
+//------------------------------------------------------------------------------
+LzCanvasGradient.prototype.__applyTo = function(m) {
+    //_root.Debug.write('LzCanvasGradient.__applyTo', this._t, this._c, this._a, this._o, this._m);
+    m.beginGradientFill(this._t, this._c, this._a, this._o, this._m)
+}

}



//=============================================================================
// DEFINE OBJECT: LzCanvasGradient
//
// LzCanvasGradient is an opaque object, which is used for assigning to 
// other attributes, e.g. fillStyle.  It is also used to add color stops.
// An LzCanvasGradient is returned by LzDrawView.createRadialGradient or  
// LzDrawView.createRadialGradient.
//=============================================================================
function LzCanvasGradient() {}

//------------------------------------------------------------------------------
// @keywords private
//------------------------------------------------------------------------------
LzCanvasGradient.prototype.__init = function(c, m) {
    this._context = c;
    this._m = m;
    this._t = "linear";
    this._c = [];
    this._a = [];
    this._o = [];
}


//------------------------------------------------------------------------------
// Adds a new stop to a gradient. gradients are rendered such that at the starting point the colour at offset 0 is used, that at the ending point the color at offset 1 is used.  globalAlpha is stored for each gradient step added.
// @param Number o: The offset this stop used for placement in the gradient.  Gradients are rendered such that for the starting point the colour at offset 0 is used, that at the ending point the color at offset 1 is used and all colors between those offsets are blended.  Must be less than 0 or greater than 1.
// @param Number c: The color to be used at this color.  A hexadecimal value, e.g. 0xffffff
//------------------------------------------------------------------------------
LzCanvasGradient.prototype.addColorStop = function(o, c) {
    this._o[this._o.length] = o * 255;
    this._c[this._c.length] = LzDrawView.prototype.cssColorToLong(c);
    this._a[this._a.length] = this._context.globalAlpha * 100;
}

//------------------------------------------------------------------------------
// @keywords private
//------------------------------------------------------------------------------
LzCanvasGradient.prototype.__applyTo = function(m) {
    //_root.Debug.write('LzCanvasGradient.__applyTo', this._t, this._c, this._a, this._o, this._m);
    m.beginGradientFill(this._t, this._c, this._a, this._o, this._m)
}

// Convert a css color string to an integer.  This recognizes only
// '#rgb', '#rrggbb', and the color names that have been defined in
// the global namespace ('red', 'green', 'blue', etc.)
LzDrawView.prototype.cssColorToLong = function(value) {
	if (typeof value != 'string') return value;
    if (value.charAt(0) == '#') {

        case 6:
            return n;
        default:
            _root.Debug.warn('invalid color: ' + value);
        }
    }
    if (typeof eval(value) == 'number')
