Object.extend(Form,
{
    initValidators: function(frm)
    {
        FormValidate.buildValidators($(frm).id);
    },
    
    checkAndSubmit: function(frm, c)
    {
        frm = $(frm);
        c = $(c);
        c.hide();
        if(FormValidate.validate(frm.id, false, this._displayError.bind(this, c)))
        {
            frm.submit();
            return true;
        }
        return false;
    },
    
    _displayError: function(c, cf, se, bv)
    {
        var e = '<h3> Form incorrectly completed </h3>';
        e += '<ul>';
        $A(bv).each(function(v){
            e += '<li>' + v.options.message + '</li>';
        });
        e += '</ul>';
        
        c.update(e);
        c.show();
        new Effect.ScrollTo(c);
    }
});