/************************************************************************
Drone.rainbow() method
======================
Creates a Rainbow.

Parameters
----------

 * radius (optional - default:18) - The radius of the rainbow

Example
-------
    
    var d = new Drone();
    d.rainbow(30);

![rainbow example](img/rainbowex1.png)

***/
Drone.extend('rainbow', function(radius){
    if (typeof radius == "undefined")
        radius = 18;
    
    this.chkpt('rainbow');
    this.down(radius);
    // copy blocks.rainbow and add air at end (to compensate for strokewidth)
    var colors = blocks.rainbow.slice(0);
    colors.push(blocks.air);
    for (var i = 0;i < colors.length; i++) {
        var bm = this._getBlockIdAndMeta(colors[i]);
        this.arc({
            blockType: bm[0],
            meta: bm[1],
            radius: radius-i,
            strokeWidth: 2,
            quadrants: {topright: true,
                        topleft: true},
            orientation: 'vertical'}).right().up();
    }
    return this.move('rainbow');
});
