var AjaxFormValidator=Class.create();AjaxFormValidator.prototype={form:'',url:'',additionalParams:'',errorDisplay:'inline',errorDiv:'errorDiv',errors:'',callback:null,initialize:function(form,url,additionalParams){this.form=$(form);this.url=url;var cuerpoDiv=$$('body');cuerpoDiv[0].insert('<div id="waitingProcess_container"></div><div id="waitingProcess_image"></div>')},validate:function(additionalparams){if(!additionalparams)additionalparams='';var params=Form.serialize(this.form)+additionalparams;var myAjax=new Ajax.Request(this.url,{method:'post',parameters:params,onSuccess:this.processForm.bind(this)});return false},processForm:function(req){var errors=eval('('+req.responseText+')');this.errors=errors;if(errors==''){this.form.submit()}else{switch(this.errorDisplay){case'none':break;case'inline':this.showErrorsInline(errors);break;case'div':this.showErrorsDiv(errors);break;default:this.showErrorsAlert(errors)}var waitingProcess=$$('div#waitingProcess_container');waitingProcess[0].remove();var waitingProcess=$$('div#waitingProcess_image');waitingProcess[0].remove();if(this.callback){this.callback()}}},showErrorsAlert:function(errors){var errorString='';errors.each(function(error){if(error.error)errorString+=error.field+': '+error.error+'\n'});alert(errorString)},showErrorsInline:function(errors){var s=$$('table.form li.error');s.each(function(node){node.remove()});for(var field in errors){var content=eval('errors.'+field);if(content==''){if($(field)){$(field).removeClassName('ko');$(field).addClassName('ok')}}else{if($(field)){$(field).removeClassName('ok');$(field).addClassName('ko');var a=$(field).ancestors();for(var msg in content){$(a[0]).insert('<li class="error">'+eval('content.'+msg)+'</li>')}}}}},showErrorsDiv:function(errors){for(var field in errors){var content=eval('errors.'+field);if(content==''){if($(field)){$(field).removeClassName('ko');$(field).addClassName('ok')}}else{if($(field)){$(field).removeClassName('ok');$(field).addClassName('ko');for(var msg in content){$(this.errorDiv).update('<li class="error">'+eval('content.'+msg)+'</li>')}}}}}}
