    
    
    function updateSum() {
        beleg= $$('#vouchersTable select.beleg').inject(0, function(acc, element){
            return acc + "| " + $F(element);
        })
        bel_arr= beleg.split("| ");

        skonto= $$('#vouchersTable input.skonto').inject(0, function(acc, element){
            return acc + "| " + $F(element);
        })
        sko_arr= skonto.split("| ");
        i= 0
        value_amount= $$('#vouchersTable input.amount').inject(0, function(acc, element) {
            i++;
            sk= parseFloat(sko_arr[i].gsub(/\./, '').gsub(/,/, '.'));
            bet= parseFloat($F(element).gsub(/\./, '').gsub(/,/, '.'))
            if (bel_arr[i] == 'RE' || bel_arr[i] == 'GS') {
                return acc + (bet-(bet*sk/100));
            }else {
                return acc - (bet-(bet*sk/100));
            }
        })
        v_a= '';
        if (!isNaN(value_amount)) {
            v_a= value_amount.toFixed(2).toString().sub(/\./, ',');
        }
        $('vouchersAmountSum').update(thousandSeparator(v_a, '.'));
        
        value= parseFloat(($('general_values_overall_amount').value).gsub(/\./, '').gsub(/,/, '.'));
        v= '';
        if (!isNaN(value) && !isNaN(value_amount)) {
            v= value + value_amount;
        }
        $('vouchersAmountSumNew').update(thousandSeparator(v.toFixed(2).toString().sub(/\./, ','), '.'));
    }
    
    function thousandSeparator(n,sep) {
        var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})'), sValue=n+'';
        if (sep === undefined) {sep=',';}
          while(sRegExp.test(sValue)) {
          sValue = sValue.replace(sRegExp, '$1'+sep+'$2');
        }
        return sValue;
    }