// fields to be validated must have class="required numeric" or similar
// plus a title attribute

var Validation_Rules = new Array();
    Validation_Rules['required'] = /\w/;
    Validation_Rules['numeric'] = /^\d+$/;
    Validation_Rules['money'] = /^\d+(\.\d\d)?$/;
    Validation_Rules['email'] = /^[^@]+@[\w.-]+\.[a-zA-Z]+$/;

function bad_value(e, v) {
    alert('"' + e.title + '" needs ' + v + ' value');
    e.focus();
    return false;
}

function validate_fields(f) {
    for(var i=0; i < f.elements.length; ++i) {
        f.elements[i].value = f.elements[i].value.replace(/^\s+/, '');
        f.elements[i].value = f.elements[i].value.replace(/\s+$/, '');
        for(var R in Validation_Rules) {
            if (element_belongs_to(f.elements[i], R)) {
                if (! f.elements[i].value.match(Validation_Rules[R]))
                    return bad_value(f.elements[i], R);
            }
        }
    }
    return true;
}

function element_belongs_to(e, c) {
    var cl = e.className.split(/\s+/);
    for(var i in cl) {
        if (cl[i] == c)
            return true;
    }
    return false;
}


