﻿$(document).ready(function () {
    AlreadyLoggedIn();
    $("#CalculateIncomeTaxButton").click(function (event) {
        var Blind = "false";
        if ($("input[name='Blind']:checked").length == 1) { Blind = "true"; }
        var Params = "{"
        if (Employment() == "Incorporated") { Params = Params + AjaxParamCurrency("Turnover", "Turnover") + "," + AjaxParamCurrency("SalaryExpense", "SalaryExpense") + "," + AjaxParamCurrency("OtherExpenses", "OtherExpenses") + "," + AjaxParamCurrency("DividendsPaid", "DividendsPaid") + ","; }
        Params = Params + AjaxParamCurrency("InterestIncome", "InterestIncome") + "," + AjaxParamCurrency("InvestmentDividendIncome", "InvestmentDividendIncome") + "," + AjaxParamCurrency("SalaryIncome", "SalaryIncome") + "," + AjaxParamCurrency("SelfEmploymentIncome", "SelfEmploymentIncome") + "," + AjaxParamCurrency("OtherIncome", "OtherIncome") + "," + AjaxParam("DateOfBirth", "DateOfBirth") + ",'Blind':'" + Blind + "',";
        Params = Params + AjaxParam("taxYear", "taxYear") + "," + AjaxParam("Employment", "Employment") + "}";
        if (Employment() != "Incorporated") {
            $.ajax(
           {
               url: "TaxCalcService.asmx/TaxCalcService",
               data: Params,
               error: AjaxFailedTax
           });
        }
        else {
            $.ajax(
           {
               url: "TaxCalcService.asmx/CorporateTaxService",
               data: Params,
               error: AjaxFailedTax
           });
        }
    });

    $("#getBSPButton").click(function (event) {
        var Params = "{" + AjaxParam("DateOfBirth") + "}"
        $('#Results').html("Calculating... " + Params);
        $.ajax(
        {
            type: "POST",
            url: "TaxCalcService.asmx/BSPService",
            data: Params,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                AjaxSucceeded(msg);
            },
            error: AjaxFailedTax
        });
    });

    $('#Turnover').blur(function (event) { CalculateValues(); });
    $('#SalaryExpense').blur(function (event) { CalculateValues(); $('#SalaryIncome').setValue(Number(ExtractCurrencyValue($('#SalaryExpense').val()))); });
    $('#OtherExpenses').blur(function (event) { CalculateValues(); });
    $('#SalaryIncome').blur(function (event) { $('#SalaryExpense').setValue(Number(ExtractCurrencyValue($('#SalaryIncome').val()))); });
    $('#DividendsPaid').blur(function (event) { CalculateValues(); $('#CompanyDividendIncome').setValue(Number(ExtractCurrencyValue($('#DividendsPaid').val()))); });
    $('#CompanyDividendIncome').blur(function (event) { CalculateValues(); $('#DividendsPaid').setValue(Number(ExtractCurrencyValue($('#CompanyDividendIncome').val()))); });

    $('#InvestmentDividendIncome').blur(function (event) { CalculateValues(); });

    $('#Employment').change(function () { navigate_Employment(); });
    $('#Employment').keyup(function () { navigate_Employment(); });
    $('#Employment').click(function () { navigate_Employment(); });

    $('#DateOfBirth').focus();
});

function AjaxFailedTax(result) {
    $('#Results').html(result.status + ' ' + result.statusText + " - Please refresh the page.");
}

function CalculateValues() {
    // this is already duplicated on the server and should be deduplicated
    $('#NetProfitBeforeTax').setValue(Number(ExtractCurrencyValue($('#Turnover').val())) - Number(ExtractCurrencyValue($('#SalaryExpense').val())) - Number(ExtractCurrencyValue($('#OtherExpenses').val())) - Number(ExtractCurrencyValue($('#NICExpense').val())));  //val(asCurrency((Number(ExtractCurrencyValue($('#Turnover').val())) - Number(ExtractCurrencyValue($('#SalaryExpense').val())) - Number(ExtractCurrencyValue($('#OtherExpenses').val())) - Number(ExtractCurrencyValue($('#NICExpense').val()))).toFixed(2)));
    $('#NetProfitAfterTax').setValue(Number(ExtractCurrencyValue($('#NetProfitBeforeTax').val())) - Number(ExtractCurrencyValue($('#CorporationTax').val()))); // val(asCurrency((Number(ExtractCurrencyValue($('#NetProfitBeforeTax').val())) - Number(ExtractCurrencyValue($('#CorporationTax').val()))).toFixed(2)));
    $('#RetainedProfits').setValue(Number(ExtractCurrencyValue($('#NetProfitAfterTax').val())) - Number(ExtractCurrencyValue($('#DividendsPaid').val()))); // val(asCurrency((Number(ExtractCurrencyValue($('#NetProfitAfterTax').val())) - Number(ExtractCurrencyValue($('#DividendsPaid').val()))).toFixed(2)));
}

function Employment() {
    return ($('#Employment').val());
}

function navigate_Employment() {
    //alert("Employment Navigation " + $('#Employment').val());
    switch (Employment()) {
        case "Employed":
            navigate_TaxSalaried(); break;
        case "Self-Employed":
            navigate_TaxSelfEmployed(); break;
        case "Incorporated":
            navigate_TaxIncorporated(); break;
        default:
            navigate_TaxUnemployed();
    }
}

function navigate_TaxSalaried() {
    // sub areas of tax
    $('#area_IncomeFromWorking').show();
    $('#area_TaxSalaried').show(0);
    $('#area_TaxDividend').hide(0);
    $('#area_TaxSelfEmployed').hide(0);
    $('#area_TaxIncorporated').hide(0);
    // main areas
    $('#area_TaxCalculation').show(0);
    $('#area_Retirement').hide(0);
}

function navigate_TaxSelfEmployed() {
    // sub areas of tax
    $('#area_IncomeFromWorking').show();
    $('#area_TaxSalaried').hide(0);
    $('#area_TaxDividend').hide(0);
    $('#area_TaxSelfEmployed').show(0);
    $('#area_TaxIncorporated').hide(0);
    // main areas
    $('#area_TaxCalculation').show(0);
    $('#area_Retirement').hide(0);
}

function navigate_TaxIncorporated() {
    // sub areas of tax
    $('#area_IncomeFromWorking').show();
    $('#area_TaxSalaried').show(0);
    $('#area_TaxDividend').show(0);
    $('#area_TaxSelfEmployed').hide(0);
    $('#area_TaxIncorporated').show(0);
    // main areas
    $('#area_TaxCalculation').show(0);
    $('#area_Retirement').hide(0);
}

function navigate_TaxUnemployed() {
    $('#area_IncomeFromWorking').hide();
    $('#area_TaxSalaried').hide(0);
    $('#area_TaxDividend').hide(0);
    $('#area_TaxSelfEmployed').hide(0);
    $('#area_TaxIncorporated').hide(0);
}

function navigate_Retirement() {
    $('#area_subHeading').html("Calculation of Basic State Pension age");
    $('#area_TaxCalculation').hide(0);
    $('#area_Retirement').show(0);
    $('#DateOfBirth').focus();
}

function Round(num, decimals) {
    return Number(num.toFixed(2));
}

function UserHasJustLoggedIn() {
    window.location.reload(); // reload the page after login
}
function AjaxStopped() { }
function SaveDataLocal() { }
function LogoutOrCancelLogin() { window.location.reload(); }
