$(function(){
    var interval;
    
    var getNumber = function(nbr) {
        if (nbr < 10)
            return '0' + nbr;
        else
            return nbr;
    };
    
    var setDisplay = function(later) {
        var now = new Date();
        var diff = (later.getTime() - now.getTime()) / 1000;
        
        if (diff <= 0)
        {
            clearInterval(interval);
            $('#container').removeClass('nearlydone').addClass('done');
            return;
        }
        if (diff < 120)
        {
            $('#container').addClass('nearlydone');
        }
        
        var hours = Math.floor(diff / 3600);
        var minutes = Math.floor((diff - (hours * 3600)) / 60);
        var seconds = Math.floor(diff % 60);
        
        var remaining = getNumber(hours) + ':' + 
            getNumber(minutes)  + ':' + 
            getNumber(seconds);
        
        $('#display span').text(remaining);
        document.title = remaining;
    };
    
    $('.start').click(function() {
        var minutes = parseInt($('.time').val(), 10);
        if (minutes > 0)
        {
            var now = new Date();
            var later = new Date(now.getTime() + (minutes * 60 * 1000));
            
            interval = setInterval(function() {
                setDisplay(later);
            }, 200);
            
            $('#form').fadeOut(500, function() {
                $('#display').fadeIn();
            });
        }
    });
    
    $('#display').click(function() {
        clearInterval(interval);
        $('#display').fadeOut(500, function() {
            $('#form').fadeIn();
            $('#container').removeClass('nearlydone').removeClass('done');
            document.title = 'Countdown';
        });
    });
    
    var resize = function() {
        $('#container').css('height', $(window).height() + 'px');
        $('#container').css('width', $(window).width() + 'px');
    };
    
    resize();
    $(window).resize(resize);
});
