var game = {
    width: 600,
    height: 400,
    refresh: 50
}

var heart;

var whiteCount = 0;
var whitecells = new Array();

var redcellsPos = 0;

var startTime = new Date().getTime();

$(
    function ()
    {
        heart = new Heart();
        
        setInterval(draw, game.refresh);
    }
)


function draw()
{
    if (heart.active && Math.random() > 0.95)
    {
        whitecells.push(new WhiteCell(game, heart));
        whitecells[whiteCount].activate();
        whiteCount++;
    }
    
    var i;
    
    redcellsPos += 10;
    $('#redcells').css('background-position', redcellsPos + 'px 0');
    
    heart.move();
    heart.draw();
    
    if (whiteCount)
    {
        i = whiteCount;
        while (i--)
        {
            if (whitecells[i].active)
            {
                whitecells[i].move();
                whitecells[i].draw();
            }
        }
    }
    
    if (heart.active)
    {
        var d = new Date().getTime() - startTime;

        var min = '0' + (Math.floor(d / 60000));
        var sec = '0' + (Math.floor(d / 1000) % 60);
        var hs = '0' + (Math.floor(d / 10) % 100);

        $('#timer').html(min.substr(-2) + ':' + sec.substr(-2) + ':' + hs.substr(-2));
    }
}


var keysDown = {};

$(document).bind('keydown', keyHandler);
$(document).bind('keyup', keyHandler);
$(document).bind('keypress', keyHandler);

function keyHandler(e)
{    
    var keycode = e.keyCode || e.which;

    switch (keycode)
    {        
        case 32:
            e.preventDefault();
            e.stopPropagation();
            
            if (e.type == 'keydown')
            {
                heart.open();
            }
            else if (e.type == 'keyup')
            {
                heart.pump();
            }
            break;
    }
}