//checks that data are valid
function checkNumber(input, min, max, msg) {

        msg = msg + " field has invalid data: " + input.value;

        //this makes sure that the number is a number
        var str = input.value;
        for (var i = 0; i < str.length; i++) {
                var ch = str.substring( i, i + 1)
                if ((ch < "0" || "9" < ch) && ch != '.') {
                        alert(msg);
                        return false;
                }
        }

        //this makes sure that the number lies between the min and max values allowed
        var num = 0 + str
        if (num < min || max < num) {
                alert(msg + " not in range [" + min + ".." + max + "]");
                return false;
        }
        input.value = str;
        return true;
}

function computeField(input) {
        if (input.value != null && input.value.length != 0)
        {
                input.value = "" + eval(input.value);
        }
        computeForm(input.form);
}

function computeForm(form) {

        var A=form.A.value;

        //making sure that an entry has been made in each field.
        if (A == null || A.length == 0)
        {
                alert('not all fields filled in');
                return;
        }

        // making sure that entries are valid by using check number
        if (!checkNumber(form.A, 0, 999999, "Amount"))
        {
                form.Cm.value = "Invalid";
                return;
        }

        // maths et al to be computed

        var T = A * 12;
        var txt="£";
        

        if (T < 24000)
        {
        var R = T * 0;
        var S = R.toFixed(2);
        form.Cm.value = txt + S;
        }

        if ((T >= 24000) && (T < 40000))
        {
        var R = T * 0.021;
        var S = R.toFixed(2); 
        form.Cm.value = txt + S;
        }

        if ((T >= 40000) && (T < 60000))
        {
        var R = T * 0.024;
        var S = R.toFixed(2); 
        form.Cm.value = txt + S;
        }

        if ((T >= 60000) && (T < 80000))
        {
        var R = T * 0.027;
        var S = R.toFixed(2);
        form.Cm.value = txt + S;
        }

        if (T >= 80000)
        {
        var R = T * 0.03;
        var S = R.toFixed(2); 
        form.Cm.value = txt + S;
        }
}

//clears form
function clearForm(form) {
        form.A.value = "";
}
