//
function hideShowYearRromo(hide) {

    if (hide == true) {

        $('#with_interest').attr("disabled", true); 
        $('#no_interest').attr('checked', true);
    }

    else {

        $('#with_interest').attr("disabled", false); 
        $('#no_interest').attr('checked', false);
    }
}




function calc(amount, interest, term) {

    var rm = interest / 12;
    var T_Price = (amount * rm) / (1 - Math.pow((1 + rm), (-12 * term)));
    T_Price = (parseInt(T_Price * 100)) / 100;
    return T_Price;
}



$(document).ready(function() {

    $('#calc_mortageBGN').click(function() {

        $('#result_mortageBGN').show();

        //get language
        var urlArr = window.location.href.split("/");
        var bg = false;
        for (var i = 0; i < urlArr.length; i++) {
            if (urlArr[i].toLowerCase() == 'bg-BG'.toLowerCase()) {
                bg = true;
                break;
            }
        }

        //localizing
        var msg1;
        var msg2;
        var msg3;
        var msg4;
        var msg5;
        var msg6;
        if (bg) {

            msg1 = "Моля, най-напред изберете тип на кредита.";
            msg2 = "Моля, най-напред изберете кредит с промоционален период 1г.\nили кредит без промоционален период.";
            msg3 = "Моля, най-напред изберете промоционален период 1г.\nили кредит без промоционален период.";
            msg4 = "Максималният размер на кредита е 500 000 лева!";
            msg5 = "Минималният размер на кредита е 10 000 лева!";
            msg6 = "Моля, въведете сума.";

        }
        else { // no english page for this calc - if such a page ready - localize english version
            msg1 = "ee";
            msg2 = "oo";
            msg3 = "aa";
            msg4 = "vv";
            msg5 = "zz";
            msg6 = "ff";
        }


        //initialize values from DB (available in hidden fields in the page)
        var interest1DB = $('#txtPurchasePercentBGN').attr("value") / 100;
        var interest2DB = $('#txtRepairPercentBGN').attr("value") / 100;

        var tax1 = $('#txtApplicationFeeBGN').attr("value");

        var creditTax1 = $('#txtPurchaseFeeBGN').attr("value") / 100;
        var creditTax2 = $('#txtRepairFeeBGN').attr("value") / 100;

        var min1 = $('#txtCreditBGNMin').attr("value");
        var max1 = $('#txtCreditBGNMax').attr("value");


        ///////////////////////////////////UBB's logic refactored///////////////////////////////////////////

        var called = true;
        var term;
        var interest1;
        var interest2;
        var promoTerm;
        var amount;
        var creditTax; //Taksa 2 za upravlenie
        var requestTax = tax1; //ednokratna taksa za molba (Taksa 1)


        //checks the selected credit type
        var isType1 = $('#credit_type1').is(':checked');
        var isType2 = $('#credit_type2').is(':checked');

        //checks the selected with/no interest
        var withInterest = $('#with_interest').is(':checked');
        var noInterest = $('#no_interest').is(':checked');


        //DELETE THE ROW BELOW WHEN RADIOBUTTONLIST IS AVAILABLE AGAIN
        noInterest = true; 


        // Set max value for credit & alert!

        if (isType1) { interest2 = interest1DB; } //- purchase whole period
        else if (isType2) { interest2 = interest2DB; }  //-repair whole period
        else { $('#result_mortageBGN').hide(); alert(msg1); return false; }

        if (isType1) { //-purchase
            if (withInterest) { interest1 = 0.0550; interest2 = 0.0975; promoTerm = 1; creditTax = 0.015 } //-1 year
            else if (noInterest) { interest1 = 0; interest2 = interest1DB; promoTerm = 0; creditTax = creditTax1 } //- whole period
            else { $('#result_mortageBGN').hide(); alert(msg2); return false; }
        }
        else if (isType2) { //-repair
            if (withInterest) { interest1 = 0; interest2 = 0.0950; promoTerm = 0; creditTax = 0.015 } //-1 year , not available for now, works as whole period
            else if (noInterest) { interest1 = 0; interest2 = interest2DB; promoTerm = 0; creditTax = creditTax2 } //- whole period
            else { $('#result_mortageBGN').hide(); alert(msg3); return false; }
        }


        // Expenses - wrong action
        //interest1 += 0.015;
        //interest2 += 0.015;

        //gets the entered amount
        amount = parseInt($('#mortageBGN_amount').attr('value'));

        if (isNaN(amount)) {
            $('#result_mortageBGN').hide(); alert(msg6);
        }

        //gets the selected year and sets the term
        var months = $('#years').val();
        term = months / 12;


        if (amount > max1) { $('#result_mortageBGN').hide(); alert(msg4); }
        else if (amount < min1) { $('#result_mortageBGN').hide(); alert(msg5); }
        else {
            if (months <= 420) {

                // If there is a promo... 
                if (promoTerm > 0) {
                    // During Promo Period
                    var T_Price = calc(amount, interest1, term);

                    //set value
                    $('#T_Price').text(T_Price);

                    // Number of months after Promo Period
                    term2 = term - promoTerm;

                    // Payments, made during Promo Period
                    loanReminder = amount;
                    mainTotal = 0;
                    for (i = 1; i <= (promoTerm * 12); i++) {
                        iPayment = (loanReminder - mainTotal) * interest1 / 12;
                        mainPayment = T_Price - iPayment;
                        mainTotal += mainPayment;
                    }

                    tmp = amount - mainTotal;
                }

                else { //-no promo... for now always here!!!

                    //calc annually percent of axpences
                    var ape = calcAnnuallyPercentExpences(amount, creditTax, requestTax, months, interest2);
                    $('#T_percent').text(ape);

                    term2 = term;
                    tmp = amount;
                    var T_Price = "0.00";

                    //set value
                    $('#T_Price').text(T_Price);

                }

                if (term2 > 0) {
                    var T_Price2 = calc(tmp, interest2, term2);

                    //set value
                    $('#T_Price2').text(T_Price2);
                }

                else {
                    $('#T_Price2').text('0');
                }

            }
        }

        ///////////////////////////////////UBB's logic refactored///////////////////////////////////////////


        //(ГПР - годишен процент разходи)
        function calcAnnuallyPercentExpences(amount, creditTax, requestTax, months, interest) {

            var p2A = 0.32; //??
            var okA = 0;
            var discountA = new Array;
            var vnoskaA;
            var p3A;
            var p1A = interest;

            var netCredit = amount - amount * creditTax - requestTax; // added requestTax
            vnoskaA = (amount * (interest / 12)) / (1 - Math.pow((1 + interest / 12), (-months)));

            // Binary search
            while (okA == 0) {

                p3A = (p1A + p2A) / 2;
                sumaA = 0;

                for (i = 1; i <= months; i++) {
                    discountA[i] = vnoskaA / Math.pow((1 + p3A), (i / 12));

                    sumaA += discountA[i];
                }

                sumaA = (parseInt(sumaA * 10000)) / 10000;

                if (netCredit > sumaA) { p2A = p3A; } 	// namaljava gornata granica
                if (netCredit < sumaA) { p1A = p3A; } // uvelichava dolnata granica

                if (netCredit == sumaA) { okA = 1; }
            }

            var result = (parseInt(p3A * 10000)) / 100;

            return result;
        }

    });
});


