function checkForm(f)
{
    evnt = (window.event ? window.event : arguments.callee.caller.arguments[0]);
    subm = null;
    if(expl = evnt.explicitOriginalTarget) {
        if(expl && expl.name == 'cancel') return;
        subm = expl;
    }
    else if(document.elementFromPoint && (ptrel = document.elementFromPoint(evnt.clientX, evnt.clientY))) {
        if(ptrel && ptrel.name == 'cancel') return;
        subm = ptrel;
    }

    err = '';
    formname = f.attributes.name.value;

    if(typeof(regexps) != "undefined" && typeof(regexps[formname]) != "undefined") {
        for(field in regexps[formname]) {
            val = '';
            if(f[field] && f[field][0] && f[field][0].type.toLowerCase() == 'radio') {
                for(l = 0; l < f[field].length; l++)
                    if(f[field][l].checked) {
                        val = f[field][l].value;
                        break;
                    }
            }
            else if(f[field])
                val = f[field].value;
            
            if(val.search(regexps[formname][field][0]) == -1)
                err += regexps[formname][field][1] + '\n';
        }
    }
    
    if(err.length > 0) {
        alert('' + err + '');
        return false;
    }
    if(subm && subm.value == 'Speichern') {
        subm.value = 'Warten Sie bitte...';
        subm.disabled = true;
    }
    return true;
}
