function focusError(selector, ferr){
    var isFocused=false;
    $(selector+' .error').each(function(i){
        var obj=$(this);
        if (obj.text()!=''){
            var focus_selector=obj.attr('rel');
            if (focus_selector){
                var focus=$(focus_selector);
                if (ferr != null) ferr(focus);
                _setFocus(focus);
                isFocused=true;
            }
            return false;
        }
    });
    return isFocused;
}
function focusFirst(selector){
    _setFocus($(selector+' :input:visible:first'));
}
function alertUser(jqObj, selector){
    alert('The field "'+$(selector+' label[for='+jqObj.attr('id')+']').text()+'" is empty or invalid.');
    _setFocus(jqObj);
}
