$(document).ready(function() {

    $('#submitLink').click(function() {
        $('#hvormyeskjema').submit();
        return false;
    });

    $('#hvormyeskjema').submit(function() {
        if (validateInput(true)) {
            hideError();
            getJSONResult();
        } else {
            displayError();
        }
        return false;
    });

    var getJSONResult = function() {
        $.ajax({
            url : $('#hvormyeskjema').attr("action"),
            data : $('#hvormyeskjema').serialize(),
            success : outputTableData,
            dataType : "json",
            error : displayError
        });
    };

    var outputTableData = function(data) {
        for (var i = 0; i < 5; ++i) {
            for (var j = 0; j < 5; ++j) {
                if (j == 0) {
                    $('#hvormyeresultat tbody tr:nth-child(' + (i + 1) + ') td:first-child').text(data.data[i][0].rente);
                }
                if (i == 0) {
                    $('#hvormyeresultat thead tr:nth-child(2) th:nth-child(' + (j + 1) + ')').text(data.data[0][j].tb);
                }
                var element = $('#hvormyeresultat tr:nth-child(' + (i + 1) + ') td:nth-child(' + (j + 2) + ')');
                element.text(data.data[i][j].answer);
            }
        }
        $('#hvormyebelop').text(data.data[2][2].answer);
        $('#hvormyeoppsummering').removeClass("hidden");
        $('#hvormyeresultat').removeClass("hidden");
    };

    var validateInput = function(toggleClass) {
        var isValid = true;
        if ($('#rente').val().match(/^\d+(,\d+$)?/) == null) {
            if (toggleClass) $('#rente').addClass("inputerror");
            isValid = false;
        } else {
            if (toggleClass) $('#rente').removeClass("inputerror");
        }

        if ($('#terminer_per_ar').val().match(/^\d+$/) == null) {
            if (toggleClass) {
                $('#terminer_per_ar').addClass("inputerror");
            }
            isValid = false;
        } else {
            if (toggleClass) $('#terminer_per_ar').removeClass("inputerror");
        }

        if ($('#lopetid').val().match(/^\d+$/) == null) {
            if (toggleClass) {
                $('#lopetid').addClass("inputerror");
            }
            isValid = false;
        } else {
            if (toggleClass) $('#lopetid').removeClass("inputerror");
        }
        if ($('#terminbelop').val().match(/^\d+$/) == null || $('#terminbelop').val() === '0') {
            if (toggleClass) {
                $('#terminbelop').addClass("inputerror");
            }
            isValid = false;
        } else {
            if (toggleClass) $('#terminbelop').removeClass("inputerror");
        }
        return isValid;
    };

    if (validateInput(false)) {
        $('#hvormyeskjema').submit();
    }

});

function displayError() {
    $('div.errormessage').removeClass('hidden');
    $('div.errormessage').text('Manglende eller ugyldige data');
}

function hideError() {
    $('div.errormessage').addClass('hidden');
    $('div.errormessage').text('');
}
