var fish = new Array;
var loaded = 0;
var myFish = null;
var stage = 0, frame = 0, aniFrame = 0;
var sh = new Array(0, 50, 40, 20, 0);
var x,y,vx,vy; 

function AddImgs()
{
    for (var x = 0; x < arguments.length; x++) {
        var loc = fish.length;
        fish[loc] = new Image();
        fish[loc].src = '/fish/' + arguments[x];
    }
}

function Init()
{
    InitFish();
    for (var x = 0; x < 19; x++) {
        fish[x] = new Image();
        fish[x].src = '/fish/fish-' + (x * 10) + '.png'; 
    }
    AddImgs('fish-90b.png', 'fish2-90.png', 'fish2-90b.png', 'LeftBowlOverlay.png', 'LeftSplash.png', 'RightBowlOverlay.png');
    setTimeout(CheckLoad, 250);
    myFish = document.getElementById('fishDiv');
}

function SetFishImg(img)
{
    if (is_ie) myFish.filters[0].src = '/fish/' + img;
    else myFish.style.backgroundImage = 'url(/fish/' + img + ')';
}

function AnimateFish()
{
    myFish.style.left = (x - 40) + 'px';
    myFish.style.top = (y - 40) + 'px';
    if (stage == 1) {
        x += vx;
        var changeSrc = x % 4 == 0;
        if (changeSrc) frame == '' ? frame = 'b' : frame = '';
        if (x > 341) changeSrc = vx = -1; 
        if (x < 265) changeSrc = vx = 1;
        if (changeSrc) {
            if (vx < 0) SetFishImg('fish2-90' + frame + '.png');
            else SetFishImg('fish-90' + frame + '.png');
        }
    } else {
        vx *= 0.9; 
        if (x > 201 && y > 18) vy -= vy / 2.2; // In water
        else vy += 10;  // In air
        x += vx;
        y += vy;
        var a = Math.atan(vy / Math.abs(vx));
        a = 90 + (10 * Math.round(a * 5.729));
        SetFishImg('fish-' + a + '.png');
        if (a == 90 && y > 18) {
            stage = 1;
            vx = 1;
            x = Math.round(x);
        }
    }     
    if (aniFrame < 5) {
        if (aniFrame == 1) document.getElementById('leftSplashDiv').style.display = 'block';
        if (aniFrame == 4) document.getElementById('leftSplashDiv').style.display = 'none';
        document.getElementById('leftSplashDiv').style.top = (110 - sh[aniFrame]) + 'px';
        document.getElementById('leftSplashDiv').style.height = sh[aniFrame] + 'px';
    }
    aniFrame++;
    setTimeout(AnimateFish, 100);
}

function InitFish() 
{
    aniFrame = 0; stage = 0; x = 147; y = 85; vx = 24; vy = -62; 
}

function CheckLoad()
{
    for (var x = 0; x < fish.length; x++)
        if (!fish[x].complete) return setTimeout(CheckLoad, 100);
    // All images loaded
    if (is_ie) {
        myFish.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/fish/fish-10.png', sizingMethod='scale');";
        document.getElementById('rightBowlDiv').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/fish/RightBowlOverlay.png', sizingMethod='scale');";
        document.getElementById('leftBowlDiv').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/fish/LeftBowlOverlay.png', sizingMethod='scale');";
        document.getElementById('leftSplashDiv').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/fish/LeftSplash.png', sizingMethod='crop');";       
    } else { 
        myFish.style.backgroundImage = 'url(/fish/fish-10.png)';
        document.getElementById('rightBowlDiv').style.backgroundImage = 'url(/fish/RightBowlOverlay.png)';
        document.getElementById('leftBowlDiv').style.backgroundImage = 'url(/fish/LeftBowlOverlay.png)';
        document.getElementById('leftSplashDiv').style.backgroundImage = 'url(/fish/LeftSplash.png)';
    }
    AnimateFish(); 
}
