function ncalc_value_between(val, range0, range1) {
    return val > range0 && val <= range1;
}

function ncalc_round(val) {
    return Math.round(val * 100) / 100;
}

function ncalc_tostr(val) {
    return val.toString(10);
}

function ncalc_set(form, fname, value) {
    if (isNaN(value)) {
        value = 0;
    }
    value = ncalc_round(value);
    form.elements[fname].value = ncalc_tostr(value);
    return value;
}

function ncalc_get_float(form, fname) {
    var decs = "0123456789";
    var i, j, err, value;


    value = form.elements[fname].value;
    err = true;
    i = value.length - 1;
    j = 0;
    for (var j = 0; j < decs.length; j++) {
        if (value.charAt(i) == decs.charAt(j))
            err = false;
    }

    if ((value.charAt(i) == ",") || (value.charAt(i) == ".")) {
        form.elements[fname].value = value.substring(0,i) + ".";
        err = false 
    }

    if (err) 
        form.elements[fname].value = value.substring(0, i);

    if ((value.length == 1) && (value == 0))
        form.elements[fname].value = value.substring(0, i);

    
    value = parseFloat(value);
    if (isNaN(value) || value.length == 0)
        value = 0;
    return value;
}


function ncalc_recalculate() {
    var rprice, oskarbowa, onotarialna, onotarialna_vat, wniosek;
    var pvalue, ppercentage;
    var osadowa = 0;
    var sum0, sum;


    form = document.forms['ncalc'];

    rprice = ncalc_get_float(form, 'rprice');
    oskarbowa = ncalc_set(form, 'oskarbowa', rprice * 0.02);
    
    if (ncalc_value_between(rprice, 0, 3000))
        onotarialna = 100;
        
    else if (ncalc_value_between(rprice, 3000, 10000)) 
        onotarialna = 100 + ((rprice - 3000) * 0.03);

    else if (ncalc_value_between(rprice, 10000, 30000)) 
        onotarialna = 310 + ((rprice - 10000) * 0.02);

    else if (ncalc_value_between(rprice, 30000, 60000)) 
        onotarialna = 710 + ((rprice - 30000) * 0.01);

    else if (ncalc_value_between(rprice, 60000, 1000000)) 
        onotarialna = 1010 + ((rprice - 60000) * 0.005);

    else if (rprice > 1000000)
        onotarialna = 5710 + ((rprice - 1000000) * 0.0025);


    if (form.elements['rrealty_type'][0].checked)
        onotarialna /= 2;
    

    onotarialna = ncalc_set(form, 'onotarialna', onotarialna);
    onotarialna_vat = ncalc_set(form, 'onotarialna_vat', onotarialna * 0.22);

	wniosek = 0;
	if (form.elements['rrealty_type'][1].checked || form.elements['kw'].checked) {
		wniosek = 183;}
    wniosek = ncalc_set(form, 'wniosek', wniosek);

	wypisy = 7.32;
	wypisy = ncalc_set(form, 'wypisy', wypisy);	
	
    ppercentage = ncalc_get_float(form, 'ppercentage');
    pvalue = ncalc_set(form, 'pvalue', rprice * ppercentage * 0.0122);

    osadowa = 0;
    if (form.elements['rrealty_type'][1].checked || form.elements['kw'].checked) {
        osadowa = 200;
    }
    ncalc_set(form, 'osadowa', osadowa);

    sum0 = oskarbowa + onotarialna + onotarialna_vat + osadowa + pvalue + wniosek + wypisy;
    sum0 = ncalc_set(form, 'sum0', sum0);
    sum  = ncalc_set(form, 'sum', rprice + sum0);
}