$(document).ready(function() {
    var initialValues = getPointBreakout();
    UpdateInterface(initialValues);
    
    $('select').change(function() {
        var breakout = getPointBreakout();
        UpdateInterface(breakout);
        $(this).effect("highlight", {}, 1000);
    });
    
    var options = { 
        target: '#graybox',
        success:    function() {
            $('#graybox').effect("bounce", {
                times:3,
                distance:20
            }, 300);
            setTimeout(location.replace('judge_page.php'),6000);
        }
    };
	   
    $('#graybox input').click(function(){
        $(this).attr("value","saving....").attr("disabled","disabled");
        $('#rankings').ajaxSubmit(options);
    })
});

function UpdateInterface(breakout){
    $('#totalPoints').text(breakout.TotalAvailable);
    $('#pointsRemaining').text(breakout.PointsLeft);
    $('#tally').text(breakout.PointsLeft);
    $('#average').text(breakout.AverageScores);
    $('#good').text(breakout.GoodScores);
    $('#excellent').text(breakout.ExcellentScores);
    $('#graybox').effect("bounce", {
        times:3,
        distance:10
    }, 300);
    $('#tally').effect("highlight", {}, 1000);
}

function getOutstandingPoints() {
    var pointsOutstanding = Math.floor($('select').length * .7);
    $('select').each(function() {
        pointsOutstanding = pointsOutstanding - parseInt(this.value);
    });
    return pointsOutstanding;
}

function getPointBreakout() {

    var unacceptable = 0;
    var average = 0;
    var good = 0;
    var excellent = 0;

    $('select').each(function() {
        switch (this.value) {
            case "1":
                average++;
                $(this).css('background-color', '#e6ffe6');
                break;
            case "2":
                good++;
                $(this).css('background-color', '#e6ffe6');
                break;
            case "3":
                excellent++;
                $(this).css('background-color', '#e6ffe6');
                break;
            default:
                unacceptable++;
                $(this).css('background-color', '#ececec');
        }
    });

    var pointBreakout = {
        TotalAvailable : Math.floor($('select').length * .73) ,
        PointsLeft : getOutstandingPoints(),
        UnacceptableScores : unacceptable,
        AverageScores : average,
        GoodScores : good,
        ExcellentScores : excellent
    }

    return pointBreakout;
}
