    function isNumberKey(evt)
    {
       var charCode = (evt.which) ? evt.which : event.keyCode
       if (charCode > 31 && (charCode < 48 || charCode > 57))
          return false;

       return true;
    }
    
    function numbersonly(myfield, e, dec)
    {
        var key;
        var keychar;
        if (window.event)
            key = window.event.keyCode;
        else if (e)
            key = e.which;
        else
            return true;
        keychar = String.fromCharCode(key);
       // control keys
        if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
            return true;
        }
        // numbers
        else if ((("0123456789").indexOf(keychar) > -1)) {
            decPos = myfield.value.indexOf(".");
            if( decPos > -1) {
                len = myfield.value.length;
                if( (decPos + 1) == (len -2)) {
//                    alert("already have a decimal and 2 digits after it; do not allow");
                    return false;
                }
            }
            return true;
        }
        // decimal point jump
        else if (dec && (keychar == ".")) {
//            myfield.form.elements[dec].focus();
            if( myfield.value.indexOf(".") == -1) {
                return true;
            }
            else {
                return false;
            }
        }
        else {
            return false;
        }
    }

