﻿// Branches

var filterInputId = null;
var filterSessionvalue = null;
var $timer = null;
var $word = null;

jQuery.extend(jQuery.expr[':'], {
    containsIgnoreCase: function (a, i, m) { return (a.textContent || a.innerText || jQuery(a).text() || '').toLowerCase().indexOf((m[3] || '').toLowerCase()) >= 0 }
});

function setUpdateForTable() {

    if ($timer != null) {
        clearTimeout($timer);
    }

    $timer = setTimeout("updateTableCode()", 400);
}

function updateTableCode() {
    if ($timer != null)
        clearTimeout($timer);

    var $word = $(filterInputId).val();

    if ($word == null) {
        $word = filterSessionvalue;

    }


    var table = $("#ProductGrid");


    /*if ($word.length == 1)
    return;*/

    //$word = $word.slice(0, 1).toUpperCase() + $word.slice(1);

    table.find('tr:gt(0)').hide().removeClass("match");
    table.find('td:containsIgnoreCase("' + $word + '")').parents('tr').show().addClass("match");

    $(".table_body_white").show();

    $(".table_body_header").each(function (i) {
        var sib = $(this).next();
        var k = 0;
        var foundVis = false;
        while (sib && !$(sib).hasClass("table_body_header") && k < 100) {
            k++;

            if ($(sib).is(':visible') && $(sib).hasClass("match") && !$(sib).hasClass("table_body_white")) {
                foundVis = true;
                break;
            }

            sib = $(sib).next();
        }

        if (foundVis) {
            $(this).show();
        }

    });

}

// End Branches

// Loans

var changingValue = false;
var changingPeriod = false;

var install = 0;
var averageCost = 0;
var averageCost1 = 0;

function updateLoanCombo(value, combo) {
    if (!changingValue) {
        var combo = $find(combo);

        if (combo) {
            var comboItems = combo.get_items();

            for (var i = 0; i < comboItems.get_count(); i++) {
                var item = comboItems.getItem(i);
                if (item && item.get_enabled()) {

                    if (item.get_value() == value) {

                        changingValue = true;
                        combo.trackChanges();

                        item.select();

                        combo.commitChanges();

                        changingValue = false;

                        return true;
                    }
                }
            }
        }
    }

    return false;
}

function updateLoanSldr(sender, eventArgs) {
    if (!changingValue) {
        var selectedItem = eventArgs.get_item();
        var selectedItemValue = selectedItem != null ? selectedItem.get_value() : sender.get_value();


        changingValue = true;
        $("#hLoanAmount").val(selectedItemValue);
        $("#sLoanAmount").slider("option", "value", selectedItemValue);
        changingValue = false;

        return true;

    }

    return false;
}

function updateLoanPeriodCombo(value, combo) {
    if (!changingPeriod) {
        var combo = $find(combo);

        if (combo) {
            var comboItems = combo.get_items();

            for (var i = 0; i < comboItems.get_count(); i++) {
                var item = comboItems.getItem(i);
                if (item && item.get_enabled()) {

                    if (item.get_value() == value) {

                        changingPeriod = true;
                        combo.trackChanges();

                        item.select();

                        combo.commitChanges();

                        changingPeriod = false;

                        return true;
                    }
                }
            }
        }
    }

    return false;
}

function updateLoanPeriodSldr(sender, eventArgs) {
    if (!changingPeriod) {
        var selectedItem = eventArgs.get_item();
        var selectedItemValue = selectedItem != null ? selectedItem.get_value() : sender.get_value();

        changingPeriod = true;
        $("#hLoanPeriod").val(selectedItemValue);
        $("#sLoanPeriod").slider("option", "value", selectedItemValue);
        changingPeriod = false;

        return true;
    }

    return false;
}

function calculateLoanValues(creditAmount, creditPeriodMonths, interest, adviceFee, disposition) {
    var remainingDebt = creditAmount;
    var monthlyPayment = creditAmount / creditPeriodMonths;

    var totalAmount = 0;

    var aPayments = new Array();
    var aRemain = new Array();
    var aInterest = new Array();

    aPayments[0] = -remainingDebt;
    aRemain[0] = remainingDebt;
    aInterest[0] = 0;

    for (var i = 0; i < creditPeriodMonths; i++) {
        var mInterest = (remainingDebt * (interest / 100)) / 12;
        aInterest[i + 1] = mInterest;
        var mAmount = monthlyPayment + mInterest + adviceFee + (i == 0 ? disposition : 0);
        aPayments[i + 1] = mAmount;
        remainingDebt -= monthlyPayment;
        aRemain[i + 1] = remainingDebt;

        totalAmount += mAmount;
    }


    install = roundNumber(Math.round(monthlyPayment), 2);
    averageCost = roundNumber(Math.round(totalAmount / creditPeriodMonths));
    averageCost1 = roundNumber(Math.round(averageCost * 1.08));
}

// End Loans

// Calculate

function dotToComma(str) { return String(str).replace(/\./g, ","); }

function roundNumber(number, decimal_points) {
    if (!decimal_points) return Math.round(number);
    if (number == 0) {
        var decimals = "";
        for (var i = 0; i < decimal_points; i++) decimals += "0";
        return "0." + decimals;
    }
    var exponent = Math.pow(10, decimal_points);
    var num = String(Math.round((number * exponent)));
    num = num.slice(0, -1 * decimal_points) + "." + num.slice(-1 * decimal_points);
    if (String(num.substr(0, 1)) == ".") { num = "0" + num.substr(0, num.length); }
    return num;

}

// End Calculate
