function UIErrorField(b,a){this.$type="UIErrorField";if(b.getErrors==undefined){throw new Error("[UIErrorField] form is undefined");}else{this.form=b;}if(a&&a.messageContainer){if(a.messageContainer.indexOf("{input}")==0){this.type="single";this.container=a.messageContainer.substring(7,a.messageContainer.length);}else{this.type="general";this.container=a.messageContainer;}}else{throw new Error("[UIErrorField] messageContainer is not specified");}if(a&&a.errorElement){if(a.messageContainer.indexOf("{input}")==0){this.errorElement={element:a.errorElement,type:"relative"};}else{this.errorElement={element:a.errorElement,type:"absolute"};}}else{this.errorElement={element:this.container};this.errorElement.type=(this.type=="single")?"relative":"absolute";}this.errorClass=(a&&a.errorClass)?a.errorClass:"error";this.wrapper=(a&&a.wrapper)?a.wrapper:"<div>";this.messages=[];this.errorClassedElements=[];this._argsRegExp=/[\(][\'\"]?[\w]+[\'\"]?[\)]/;this._funcRegExp=/\.[\w]+[\(][\'\"]?[\w]+[\'\"]?[\)]/g;}UIErrorField.implement({showErrors:function(){var f=this.form.getErrors();var d,b;this.removeErrors();if(this.type=="single"){for(var e in f){if(f[e].length>0){var c=jQuery(this.form.inputs.get(e).input[0]);var a=this._getRelativeContainer(c,this.container);this._addClass(c);for(b=0,l=f[e].length;b<l;b++){d=jQuery(this.wrapper).append(f[e][b]);this.messages.push(d);jQuery(a).append(d);}}}}else{for(var e in f){if(f[e].length>0){var c=this.form.inputs.get(e).input[0];this._addClass(c);for(b=0,l=f[e].length;b<l;b++){d=jQuery(this.wrapper).append(f[e][b]);this.messages.push(d);jQuery(this.container).append(d);}}}}},removeErrors:function(){for(var d=0,a=this.messages.length;d<a;d++){this.messages[d].remove();}for(var c=0,b=this.errorClassedElements.length;c<b;c++){this.errorClassedElements[c].removeClass(this.errorClass);}},getErrorElements:function(){return this.messages;},_getRelativeContainer:function(e,a){var c=jQuery(e);var f=a.match(this._funcRegExp);if(f!=null){for(var d=0,b=f.length;d<b;d++){match=f[d].substring(1,f[d].length);args=f[d].match(this._argsRegExp);args=args[0].replace(/[\'\"\(\)]/g,"");match=match.replace(this._argsRegExp,"");c=jQuery(c)[match](args);}}return c;},_addClass:function(a){var b;if(this.errorElement.type=="relative"){b=this._getRelativeContainer(a,this.errorElement.element);}else{b=this.errorElement;}this.errorClassedElements.push(jQuery(b));jQuery(b).addClass(this.errorClass);}});