var keysEntered;
var imageFileNames;

function Init()
{
    keysEntered = new Array();
    var i;
    for(i=0;i<10;i++)
    {
        keysEntered[i] = 0;
    }

    imageFileNames = new Array();
    imageFileNames[imageFileNames.length] = '/images/Brandon.png';
    
    
    for(i=0;i<imageFileNames;i++)
    {
        var img = document.createElement('img');
        img.setAttribute('src', imageFileNames[i]);
        document.body.appendChild(img);
    }
}


function GetRandomImageFileName()
{
    var imageIndex = Math.floor(Math.random() * imageFileNames.length);
    return imageFileNames[imageIndex];    
}

function AddKeyToList(keyCode)
{
    var i;
    var up = 38;
    var down = 40;
    var left = 37;
    var right = 39;
    var b = 66;
    var a = 65;
    for(i=0;i<9;i++)
    {
        keysEntered[i] = keysEntered[i + 1];
    }
    keysEntered[9] = keyCode;
    
    if((keysEntered[0]==up) &&
       (keysEntered[1]==up) &&
       (keysEntered[2]==down) &&
       (keysEntered[3]==down) &&
       (keysEntered[4]==left) &&
       (keysEntered[5]==right) &&
       (keysEntered[6]==left) &&
       (keysEntered[7]==right) &&
       (keysEntered[8]==b) &&
       (keysEntered[9]==a))
    {
        RunBrandon();
    }
    
    
    var str = '';
    for(i=0;i<10;i++)
    {
        str += keysEntered[i] + ' | ';
    }
    
}

var brandonPos = 0;

function RunBrandon()
{
    WaitForBrandon();    
}

function WaitForBrandon()
{
    if(brandonPos>0)
    {
        setTimeout('WaitForBrandon()', 800);
    }
    else
    {
        var imgBrandon = document.getElementById('imgBrandon');
        imgBrandon.src = GetRandomImageFileName();    
        AdvanceBrandon();
    }
}


function AdvanceBrandon()
{
    var imgBrandon = document.getElementById('imgBrandon');
    imgBrandon.style.position = 'absolute';
    
    brandonPos += 4;
    imgBrandon.style.top = '' + 2 * brandonPos + 'px';
    imgBrandon.style.left = '600px';
    imgBrandon.style.visibility = 'visible';
    
    
    if(brandonPos<125)
    {
        setTimeout('AdvanceBrandon();', 50);
    }
    else
    {
        brandonPos = 0;
        imgBrandon.style.top = '0px';
        imgBrandon.style.visibility = 'hidden';
    }
}

function DetectKonamiCode(ev)
{
    var keyCode = null;
    if(window.event)
    {
        keyCode = window.event.keyCode;
    }
    else if(ev)
    {
        keyCode = ev.which;
    }
    else
    {
        return true;
    }

    //alert(keyCode);
    AddKeyToList(keyCode);

    return true;
}