var Form=new Class({field:function(field_id){if(this.element[field_id]){return this.element[field_id];};return null;},initFromHash:function(hash){var self=this;hash=hash instanceof Hash?hash:new Hash(hash);var init=function(value,key){var field=self.field(key);if(field!=null){self.field(key).value(value);}}
hash.each(init);},storeToHash:function(){var hash=new Hash();for(var i in this.element){if(this.element[i].disable()){continue;}
hash.set(i,this.element[i].value());}
return hash;},validate:function(){var validated=true;for(i in this.element){if(!this.element[i].validate()){validated=false;}}
return validated;},showErrors:function(json){var self=this;if(json.error.class_name==$E.ExValidateFails){json.error.fields.each(function(obj){if($defined(self.element[obj.field])){self.element[obj.field].showErrors(obj.errors);}});}},hideErrors:function(){for(i in this.element){this.element[i].hideErrors();}},reset:function(){for(i in this.element){this.element[i].hideErrors();}},resetFields:function(){for(i in this.element){this.element[i].reset();this.element[i].hideErrors();}},isChanged:function(){for(i in this.element){if(this.element[i].isChanged()==true){return true;}}
return false;},clear:function(){for(i in this.element){this.element[i].value(null);this.element[i].hideErrors();}}});