function clear_years() {
    var mySelect = document.getElementById('years'); // your form
    var counter = 0;

    for (var loop = 0; loop < mySelect.options.length; loop++) {
        if (loop > 19) {
            mySelect.options[loop] = null; // remove the option
            loop--;
        }
    }
}

function add_years(count) {
    clear_years();

    var select = document.getElementById('years');
    var text = select.options[1].text.substring(1);
    var start = select.options.length;
    var end = select.options.length + count;
    //    alert(text);
    //    return;

    for (var x = start + 1; x <= end; x++) {
        var option = document.createElement('option');
        option.appendChild(document.createTextNode(x + ' ' + text));
        option.setAttribute('value', x * 12);

        select.appendChild(option);
    }
}

function calculateEU() {

    //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 = "Минималният размер на кредита е 7500 EUR!";
        msg6 = "Моля, въведете сума.";
        msg7 = "Максималният размер на кредита е 100 000 EUR!";

    }
    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 7500!";
        msg6 = "Please, enter an amount.";
        msg7 = "The loan amount should not exceed EUR 100 000!";
    }


    //initialize values from DB (available in hidden fields in the page)
    var interestFirstFlatDB = $('#txtPurchasePercentFirstFlatEUR').attr("value") / 100;
    var interest1DB = $('#txtPurchasePercentEUR').attr("value") / 100;
    var interest2DB = $('#txtRepairPercentEUR').attr("value") / 100;
    var interest3DB = $('#txtRepairFittingPercentEUR').attr("value") / 100;

    //new credits 21.07.2011
    var interest1Building = $('#txtPurchaseFirstFlatEUWith').attr("value") / 100;
    var interest2Building = $('#txtPurchaseFirstFlatEUWithOut').attr("value") / 100;
    var interest3Building = $('#txtPurchaseStandartEUWith').attr("value") / 100;
    var interest4Building = $('#txtPurchaseStandartEUWithOut').attr("value") / 100;
    

    var tax1 = $('#txtApplicationFeeEUR').attr("value");

    var creditTax1 = $('#txtPurchaseFeeEUR').attr("value") / 100;
    var creditTax2 = $('#txtRepairFeeEUR').attr("value") / 100;
    var creditTax3 = $('#txtRepairFeeEUR').attr("value") / 100;

    var min1 = $('#txtCreditEURMin').attr("value");
    var max1 = $('#txtCreditEURMax').attr("value");
    var max2 = $('#txtCreditFittingEURMax').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 isTypeFirstFlat = $('#credit_type_firstFlatEU').is(':checked');
    var isType1 = $('#credit_type3').is(':checked');
    var isType2 = $('#credit_type4').is(':checked');
    var isType3 = $('#credit_type6').is(':checked');

    //new credits 21.07.2011
    var isTypeEU1 = $('#credit_typeEU1').is(':checked');
    var isTypeEU2 = $('#credit_typeEU2').is(':checked');
    var isTypeEU3 = $('#credit_typeEU3').is(':checked');
    var isTypeEU4 = $('#credit_typeEU4').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;withInterest = false;


    // Set max value for credit & alert!

    if (isType1 || isTypeFirstFlat) { interest2 = interest1DB; } //- purchase whole period
    else if (isType2) { interest2 = interest2DB; }  //-repair whole period
    else if (isType3) { interest3 = interest3DB; }
    else if (isTypeEU1) { interest2 = interest1Building; }  //-repair whole period
    else if (isTypeEU2) { interest2 = interest2Building; }
    else if (isTypeEU3) { interest2 = interest3Building; }  //-repair whole period
    else if (isTypeEU4) { interest2 = interest4Building; }    
    else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg1); return false; }

    if (isTypeFirstFlat) {
        if (withInterest) { interest1 = 0.0550; interest2 = 0.0975; promoTerm = 1; creditTax = 0.015 } //-1 year
        else if (noInterest) { interest1 = 0; interest2 = interestFirstFlatDB; promoTerm = 0; creditTax = creditTax1 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg2); return false; }
    }
    else 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(); $('#result_mortageEUR_label').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(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    }
    else if (isType3) { //-repair&fitting
        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 = interest3DB; promoTerm = 0; creditTax = creditTax3 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    } //new credits 21.07.2011
    else if (isTypeEU1) { //-repair&fitting
        if (withInterest) { interest1 = 0; interest2 = 0.0950; promoTerm = 0; creditTax = 0.015 }
        else if (noInterest) { interest1 = 0; interest2 = interest1Building; promoTerm = 0; creditTax = creditTax1 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    }
    else if (isTypeEU2) { //-repair&fitting
        if (withInterest) { interest1 = 0; interest2 = 0.0950; promoTerm = 0; creditTax = 0.015 }
        else if (noInterest) { interest1 = 0; interest2 = interest2Building; promoTerm = 0; creditTax = creditTax1 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    }
    else if (isTypeEU3) { //-repair&fitting
        if (withInterest) { interest1 = 0; interest2 = 0.0950; promoTerm = 0; creditTax = 0.015 }
        else if (noInterest) { interest1 = 0; interest2 = interest3Building; promoTerm = 0; creditTax = creditTax1 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    }
    else if (isTypeEU4) { //-repair&fitting
        if (withInterest) { interest1 = 0; interest2 = 0.0950; promoTerm = 0; creditTax = 0.015 }
        else if (noInterest) { interest1 = 0; interest2 = interest4Building; promoTerm = 0; creditTax = creditTax1 } //- whole period
        else { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg3); return false; }
    }

    // Expenses - wrong action
    //interest1 += 0.015;
    //interest2 += 0.015;

    //gets the entered amount
    amount = parseInt($('#mortage_amount').attr('value'));


    if (isNaN(amount) || amount == 0) {


        $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg6);
        return;
    }

    //gets the selected year and sets the term
    var months = $('#years').val();
    term = months / 12;

    // check  if it is the third radion button
    if (isType3) {
        max1 = max2;
        msg4 = msg7;
    }

    if (amount > max1) { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').hide(); alert(msg4); }
    else if (amount < min1) { $('#result_mortageEUR').hide(); $('#result_mortageEUR_label').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'); }

        }


        $('#result_mortage').show();
        $('#result_mortage_label').show();

        changeCurrency('e'); 
    }

    ///////////////////////////////////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;
    }


}

function hideResult() {

    $('#result_mortage').hide();
    $('#result_mortage_label').hide();
}

function resetSumLabels() {

    $('#calcType2').hide();
    $('#calcType1').hide();
    $('#calcType2EUR').hide();
    $('#calcType1EUR').hide();
}

$(document).ready(function() {

    $('#credit_type_firstFlatEU').click(function() {

        resetSumLabels();
        $('#calcType2EUR').hide();
        $('#calcType1EUR').show();
        hideResult();
        add_years(15);
    });

    $('#credit_type3').click(function() {

        resetSumLabels();
        $('#calcType2EUR').hide();
        $('#calcType1EUR').show();

        hideResult();
        add_years(15);
    });

    $('#credit_type4').click(function() {

        resetSumLabels();        
        $('#calcType2EUR').hide();
        $('#calcType1EUR').show();
        hideResult();
        add_years(15);
    });

    if ($('#credit_type6')) {
        $('#credit_type6').click(function() {
            
            resetSumLabels();
            $('#calcType2EUR').show();
            $('#calcType1EUR').hide()

            $('#credit_type3').hide();
            $('#credit_type4').show();
            hideResult();
            clear_years();
        });
    }

});

