function isFormValid(selector, f){
    var isValid=true;
    $(selector+" .req_value:visible :input").each(function(i){
        var jqObj=$(this);
        var fieldVal=trim(jqObj.val());
        if (fieldVal==''){
            alertUser(jqObj,selector);
            isValid=false;
            return false;
        }
        var attrs=jqObj.attr('id').split('_');
        var length=attrs.length;
        if (length && attrs[length - 1]=='email' && false==isValidEmail(fieldVal)){
            alertUser(jqObj,selector);
            isValid=false;
            return false;
        }
    });
    if (!isValid)  return false;
    if (f != null) return f();
    return true;
}
function bindForm(selector, f){
    $(selector).submit(function(){
        return isFormValid(selector, f);
    });
    if (false==focusError(selector)) focusFirst(selector);
}