$(document).ready(function() {

    $('#add-to-list-button').click(function(event) {
        event.preventDefault();

        var loan = getLoanData($);

        switch(loan.installment_type) {
            case 'equal':
                type = 'Równe';
                break;
            case 'decreasing':
                type = 'Malejące';
                break;
        }

        $('<tr><td class="loan-capital">'+loan.capital+'</td><td class="loan-interest">'+loan.interest+'%</td>\n\
            <td class="loan-payback-period">'+loan.payback_period+' miesięcy</td>\n\
            <td class="loan-installment-type">' + type + '<input type="hidden" value="'+loan.installment_type+'" /></td>\n\
            <td><a class="remove" href="#">Usuń</a></td></tr>')
        .appendTo('#loan-list tbody');

        $('#loan-list').show();
    });

    $('#loan-list').click(function(event) {
        var $target = $(event.target);

        if ($target.is('a.remove')) {
            $target.parent().parent('tr').remove();

            if ($('#loan-list tbody tr').size() == 0) {
                $('#loan-list').hide();
            }
        }
    });

    $('#compare-button').click(function(event) {
        
        showAjaxLoader($);

        var loanCollection = new Array();

        $('#loan-list tbody tr').each(function() {
            if ($(this).children().size() > 1) {
                var loanCapital         = $('td.loan-capital', this).text();
                var loanInterest        = $('td.loan-interest', this).text();
                loanInterest = /(\d+[,\.]?\d*)/.exec(loanInterest)[1];
                var loanPaybackPeriod   = $('td.loan-payback-period', this).text();
                loanPaybackPeriod = /(\d+[,\.]?\d*)/.exec(loanPaybackPeriod)[1];
                var loanInstallmentType = $('td.loan-installment-type input', this).val();

                loanCollection.push({
                    capital: loanCapital,
                    interest: loanInterest,
                    payback_period: loanPaybackPeriod,
                    installment_type: loanInstallmentType
                });
            }
        });

        var loanDefiniotions = JSON.stringify(loanCollection);
        $('#loan-definitions').val(loanDefiniotions);
    });

    $('#calculate-button').click(function(event) {
        showAjaxLoader($);

        return true;
    });
    
});

function getLoanData($) {
    var capital            = $('#capital-textfield').val();
    var interest           = $('#interest-textfield').val();
    var paybackPeriodValue = $('#payback-period-textfield').val();
    var paybackPeriodUnit  = $('#payback-period-unit-combobox').children('[selected]').val();
    var installmentType    = $('.loan-form input[type=radio]').siblings('[checked]').val();

    var paybackPeriod;

    if (paybackPeriodUnit == 'year') {
        paybackPeriod = paybackPeriodValue * 12;
    }
    else {
        paybackPeriod = paybackPeriodValue;
    }

    return {
        capital: capital,
        interest: interest,
        payback_period: paybackPeriod,
        installment_type: installmentType
    }
}

function showAjaxLoader($) {

    $('#results-area').html('');
    $('<div class="loader"><p>Proszę czekać...</p><img src="/images/ajax-loader.gif" alt="Wczywywanie..." /></div>')
    .appendTo('#results-area');

    
}
