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