function validatePrevThan(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    var formName = form.getAttributeNode("name");

    oPrevThan = eval('new ' + formName.value + '_PrevThanValidations()');
    for (x in oPrevThan) {
        var field = form[oPrevThan[x][0]];
        var secondField = form[oPrevThan[x][2]("secondProperty")];
    
        if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio' ||
            field.type == 'password') {
    
            var value;
            var secondValue;
            // get field's value
            if (field.type == "select-one") {
                var si = field.selectedIndex;
                value = field.options[si].value;
                secondValue = secondField.options[si].value;
            } else {
                value = field.value;
                secondValue = secondField.value;
            }
        
            if ( value >= secondValue ) {
            
                if (i == 0) {
                    focusField = field;
                }
                fields[i++] = oPrevThan[x][1];
                bValid = false;
            }
        }
    }
    
    if (fields.length > 0) {
        focusField.focus();
        alert(fields.join('\n'));
    }
    
    return bValid;
}

