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