
    function ball_personality(objArt, index, behavior){
        this.setProperties(objArt, index, behavior);

        this.co = new ball_invisible(this, 500, 100, 5);
        this.visible = false; // should be read from co?
        this.co.color = "#FF3300";

        return this;
    }

    ball_personality.prototype = new BaseBehaviors();
    ball_personality.prototype.constructor = new BaseBehaviors;
    ball_personality.superclass = BaseBehaviors.prototype;

    ball_personality.prototype.setProperties = function(objArt, index, behavior){

	    ball_personality.superclass.setProperties.call(this, objArt, index, behavior);

	    this.posX = 0;
	    this.posY = 0;

	    this.speed = 15;

	    return this;
    };

    ball_personality.prototype.mp = function(x, y){

        ball_personality.superclass.mp.call(this, x, y);

	    var cx = this.co.posX;
	    var cy = this.co.posY;

	    var dx = ((x - cx)/this.speed);
	    var dy = ((y - cy)/this.speed);

	    var new_x = cx + dx;
	    var new_y = cy + dy;

		this.obj.left = new_x + this.noPx;
		this.obj.top  = new_y + this.noPx;

	    for (i = 0; i < this.index; i++){
			if (choochoo[i].objArt.id.indexOf("chewy") == 0) choochoo[i].mp(new_x, new_y);
		}

	    this.posX = x;
	    this.posY = y;

	    return (this.co);
	};

    ball_personality.prototype.super_looper = function (){

        if (this.co.fini()) {
			this.co = new BaseSequence(this, 50, 50, 1000);
			this.co.color = "#FF3300";
		    this.visible = true;
		    this.active = true;
	     }

        this.mp(this.posX, this.posY);
        this.output();
    };

    ball_personality.prototype.start_face = function(){
        this.redraw (1, "o");
    };

    ball_personality.prototype.def_face = function(){
        this.redraw (1, "o");
    };

    ball_personality.prototype.alt_face = function(){
        this.redraw (1, "o");
    };

    ball_personality.prototype.invisible = function(){
        this.redraw (1, "");
    };

