
Number.prototype.format = (function(decimals, dec_point, thousands_sep) {
    var number = this;

    var exponent = '';
    var numberstr = this.toString();
    var eindex = numberstr.indexOf('e');
    if (eindex > -1) {
        exponent = numberstr.substring(eindex);
        number = parseFloat(numberstr.substring(0, eindex));
    }

    if (decimals != null) {
        var temp = Math.pow(10, decimals);
        number = Math.round(number * temp) / temp;
    }

    var sign = number < 0 ? '-' : '';
    var integer = (number > 0 ? Math.floor(number) : Math.abs(Math.ceil(number))).toString();

    var fractional = number.toString().substring(integer.length + sign.length);
    dec_point = dec_point != null ? dec_point : '.';
    fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring(1)) : '';

    if (decimals != null && decimals > 0) {
        for (i = fractional.length - 1, z = decimals; i < z; ++i)
            fractional += '0';
    }

    thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? thousands_sep : null;

    if (thousands_sep != null && thousands_sep != '') {
        for (i = integer.length - 3; i > 0; i -= 3)
            integer = integer.substring(0, i) + thousands_sep + integer.substring(i);
    }

    return sign + integer + fractional + exponent;
});

var pflegekosten = 0;
var pflegestufe = 0;
var zwischensumme = 0;
var investitionskosten = 0;
var rechnungsbetrag = 0;
function changedivision() {
    var divisionid = $('divisionid').get('value');
    var req = new Request.HTML({ url: 'inc/CareCalculator/carecalculatorpositions.php?id='+divisionid,
        onSuccess: function(htmltree, _elements, htmls, scripts) {
            $('cc_positions').set('text', '');
            $('cc_positions').set('html', htmls);
            $$('input.cc_amount').addEvents({
                'change': function() {
                    recalc();
                }
            });
            try {
                
            } catch (e) { }
        },
        onFailure: function() {
        $('cc_positions').set('text', 'Fehler beim laden der Unterseite');
        }
    });
    req.send();
}
function runde(x, n) {
    if (n < 1 || n > 14) return false;
    var e = Math.pow(10, n);
    var k = (Math.round(x * e) / e).toString();
    if (k.indexOf('.') == -1) k += '.';
    k += e.toString().substring(1);
    return k.substring(0, k.indexOf('.') + n + 1);
}

function recalc() {
    
    pflegekosten = 0;
    investitionskosten = 0;
    zwischenA = 0;
    zwischenB = 0;
    pflegestufe = 0;

    var reach = 2;

    $$('input.cc_amount').each(function(item, index, object) {        
        var id = item.id.replace('amount', '');
        var payment = parseFloat($('payment' + id).get('text').replace(',','.'));
        var copayment = parseFloat($('copayment' + id).get('text').replace(',', '.'));
        $('paymentsum' + id).set('text', runde(item.value * payment,2));
        pflegekosten += item.value * payment;
        investitionskosten += item.value * copayment;
    });
    var carestepallowance = parseFloat($('carestepallowance_amount').get('text'));
    $('total_sum').set('text', runde(pflegekosten, 2));
    $('pstufe_amount').set('text', $('carestepallowance_amount').get('text'));
    $('own_amount').set('text', runde(Math.max(0, pflegekosten - carestepallowance) + investitionskosten, 2));
    $('co_sum').set('text', runde(investitionskosten, 2));
    
}

