
$(document).ready(function() {

    $('#calc_mortageEUR').click(function() {

        $('#result_mortageEUR').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 = "Максималният размер на кредита е 250 000 EUR!";
            msg5 = "Минималният размер на кредита е 5000 EUR!";
            msg6 = "Моля, въведете сума.";

        }
        else { // localize english version
            msg1 = "Please, select loan type.";
            msg2 = "Please, select promotional period.";
            msg3 = "Please, select promotional period.";
            msg4 = "The loan amount should not exceed EUR 250 000!";
            msg5 = "The loan amount should be greater than EUR 5000!";
            msg6 = "Please, enter an amount.";
        }


        //initialize values from DB (available in hidden fields in the page)
        var interest1DB = $('#txtPurchasePercentEUR').attr("value") / 100;
        var interest2DB = $('#txtRepairPercentEUR').attr("value") / 100;

        var tax1 = $('#txtApplicationFeeEUR').attr("value");

        var creditTax1 = $('#txtPurchaseFeeEUR').attr("value") / 100;
        var creditTax2 = $('#txtRepairFeeEUR').attr("value") / 100;

        var min1 = $('#txtCreditEURMin').attr("value");
        var max1 = $('#txtCreditEURMax').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_mortageEUR').hide(); alert(msg1); return false; }

        if (isType1) { //-purchase
            if (withInterest) { interest1 = 0.0450; interest2 = 0.0875; promoTerm = 1; creditTax = 0.015 } //-1 year
            else if (noInterest) { interest1 = 0; interest2 = interest1DB; promoTerm = 0; creditTax = creditTax1 } //- whole period
            else { $('#result_mortageEUR').hide(); alert(msg2); return false; }
        }
        else if (isType2) { //-repair
        if (withInterest) { interest1 = 0; interest2 = 0.0850; 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_mortageEUR').hide(); alert(msg3); return false; }
        }


        // Expenses - wrong action
        //interest1 += 0.015;
        //interest2 += 0.015;

        //gets the entered amount
        amount = parseInt($('#mortageEUR_amount').attr('value'));

        if (isNaN(amount)) {
            $('#result_mortageEUR').hide(); alert(msg6);
        }

        //gets the selected year and sets the term
        var months = $('#years').val();
        term = months / 12;


        if (amount > max1) { $('#result_mortageEUR').hide(); alert(msg4); }
        else if (amount < min1) { $('#result_mortageEUR').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;
        }


    });
});
