var inited = false;
var sprites = new Array();
var spriteMax = -1;
var speed = .5;
var speedMax = 5;

function initAnim(lettermax)
{
    if (document.getElementById)
    {
        spriteMax = lettermax;
        for (i = 0; i < spriteMax; i++)
        {
            x = 50 + Math.round( Math.random() * 300);
            y = 50 + Math.round( Math.random() * 150);
            sprites[i] = new Sprite(x, y, 0, 0);

            var elm = document.getElementById("sprite" + i);
            elm.style.left = sprites[i].x + "px";
            elm.style.top = sprites[i].y + "px";
            elm.style.display = "block";
        }
        inited = true;
        setTimeout("move()", 100);
    }
}

function move()
{
    if (inited)
    {
        for (i = 0; i < spriteMax - 1; i++)
        {
            adjustSpriteSpeed(i, i + 1);
        }
        adjustSpriteSpeed(spriteMax - 1, 0);

        for (i = 0; i < spriteMax; i++)
        {
            var elm = document.getElementById("sprite" + i);
            elm.style.left = sprites[i].x + "px";
            elm.style.top = sprites[i].y + "px";
        }
        setTimeout("move()", 100);
    }
}

function adjustSpriteSpeed(i1, i2)
{
    sprites[i1].speedX = adjustSpeed(sprites[i1].x, sprites[i2].x, sprites[i1].speedX);
    sprites[i1].speedY = adjustSpeed(sprites[i1].y, sprites[i2].y, sprites[i1].speedY);

    if (sprites[i1].x + sprites[i1].speedX < 0 || sprites[i1].x + sprites[i1].speedX > 370)
    {
        sprites[i1].speedX *= -1;
    }
    if (sprites[i1].y + sprites[i1].speedY < 40 || sprites[i1].y + sprites[i1].speedY > 280)
    {
        sprites[i1].speedY *= -1;
    }

    sprites[i1].x += sprites[i1].speedX;
    sprites[i1].y += sprites[i1].speedY;
}

function adjustSpeed(sprite1, sprite2, speed1)
{
    if (sprite1 < sprite2) {
        speed1 += speed;
        if (speed1 > speedMax) {
            speed1 = speedMax;
        }
    }
    else if (sprite1 > sprite2) {
        speed1 -= speed;
        if (speed1 < -speedMax) {
            speed1 = -speedMax;
        }
    }
    return speed1;
}

function Sprite(x, y, speedX, speedY)
{
    this.x = x;
    this.y = y;
    this.speedX = speedX;
    this.speedY = speedY;
}