function form_rules(rules_param)
{var rules={};for(field in rules_param)
{var required=((rules_param[field].required=='true')||(rules_param[field].required===true))?'required ':'';var rule=required+field;rules[field]=rule;J.validator.addMethod(field,function(value,element){field=element.name;matched=this.optional(element)||value.match(new RegExp(rules_param[field].pattern,rules_param[field].options));valid=(matched==null)?false:true;return matched;},rules_param[field].message);}
return rules;}
function form_post(config)
{var jForm=J(config.formSelector);var validate=jForm.validate({rules:config.rules,onkeyup:false,errorElement:config.errorElement,wrapper:config.errorWrapper,debug:true,submitHandler:function(){var okToSubmit=config.preAjaxRequestCallback();if(okToSubmit)
{J.ajax({type:'post',url:config.action,data:jForm.serialize(),success:function(data,status,xhr)
{data=json_parse(data);if(data.status=='OK')
{config.okCallback(data);}
else
{config.warningCallback(data);for(field in data)
{config.fieldCallback(field,data[field]);}}},error:function(xhr,status,error)
{config.errorCallback(xhr,status,error);}});}}});}
