function addValidators(field) {
    var inputClassName = field.className
    if (inputClassName.indexOf('val:') != -1) {
        var val = new LiveValidation(field.id, { validMessage: " ", onlyOnBlur: true });

        if (inputClassName.indexOf('mandatory') != -1) {
            if (field.type.toLowerCase() == 'checkbox') {
                val.add(Validate.Acceptance, { failureMessage: " <sub><img src=\"/cms/common/error.gif\" /></sub> "/*" Muss ausgewaehlt sein. "*/ });
            } else {
                val.add(Validate.Presence, { failureMessage: " "/*"Muss angegeben werden."*/ });
            }
        }
        if (inputClassName.indexOf('email') != -1) {
            val.add(Validate.Email, { failureMessage: " "/*"Muss eine gueltige E-Mail Adresse sein."*/ });
        }
        if (inputClassName.indexOf('number') != -1) {
            val.add(Validate.Format, { pattern: /^[0-9.,]*$/, failureMessage: " "/*"Muss eine Zahl sein."*/ });
//            val.add(Validate.Numericality, { failureMessage: "Muss eine Zahl sein." }); // seems not to work..
        }
        if (inputClassName.indexOf('date') != -1) {
            val.add(Validate.Format, { pattern: /^(\d\d?)(\D)(\d\d?)(\D)(\d\d\d?\d?)/, failureMessage: " "/*"Muss eine Zahl sein."*/ });
        }
// f20.add( Validate.Format, { pattern: /^[a-zA-Z0-9-_.]*$/ } ); // string without spaces and special chars
    }
}

function checkFieldsToAddValidators() {
    var fields = ['input', 'textarea', 'select'];
//    for each(var field in fields) { // javascript 1.6 only...
//    for (var i = 0; i < fields.length; i++) {
    for (var i in fields) {
        for (var j = 0; j < document.getElementsByTagName(fields[i]).length; j++) {
            addValidators(document.getElementsByTagName(fields[i])[j]);
        }
    }
}

checkFieldsToAddValidators();

