Type.registerNamespace("Seeems.Framework");Seeems.Framework._Validation=function(){Seeems.Framework._Validation.initializeBase(this);Sys.Application.registerDisposableObject(this)};Seeems.Framework._Validation.prototype={_form:null,_createRulesForField:function(g){for(var b={},f=g.Rules,d,c,a,e=0;e<f.length;e++){d=f[e];c=d.Type;a=d.Parameters;switch(c){case"range":b.range=[a.minimum,a.maximum];break;case"regularExpression":b.regex=a.pattern;break;case"required":b.required=a?a:true;break;case"stringLength":b.maxlength=a.maximumLength;break;default:if(a)b[c]=a;else b[c]=true}}return b},_createOptions:function(b){for(var c={},a=0;a<b.length;a++){var d=b[a],e=d.FieldName;c[e]=this._createRulesForField(d)}return c},_createFieldToValidationMessageMapping:function(c){for(var b={},a=0;a<c.length;a++){var d=c[a];b[d.FieldName]="#"+d.ValidatorId}return b},_createErrorMessagesObject:function(f){for(var g={},c=0;c<f.length;c++){var h=f[c],e={};g[h.FieldName]=e;for(var i=h.Rules,d=0;d<i.length;d++){var a=i[d];if(a.ErrorMessage){var b=a.Type;switch(a.Type){case"regularExpression":b="regex";break;case"stringLength":b="maxlength"}e[b]=a.ErrorMessage}}}return g},create:function(e){var b="_for_validation_message",c="input-validation-error",a=this;a._form=$("#"+e.FormId);var d=e.Fields,i=a._createOptions(d),f=a._createFieldToValidationMessageMapping(d),g=a._createErrorMessagesObject(d),h={errorClass:c,errorElement:"span",errorPlacement:function(d,e){var a=f[e.attr("name")];$(a).empty();d.removeClass(c);d.attr(b,a);d.appendTo(a)},messages:g,rules:i,success:function(c){var a=$(c.attr(b));$(a).empty()}};return a._form.validate(h)},dispose:function(){this._form&&$.data(this._form[0],"validator",null);Sys.Application.unregisterDisposableObject(this)}};Seeems.Framework._Validation.registerClass("Seeems.Framework._Validation",null,Sys.IDisposable);var $Validation=Seeems.Framework.Validation=new Seeems.Framework._Validation;jQuery.validator.addMethod("regex",function(b,c,d){if(this.optional(c))return true;var a=(new RegExp(d)).exec(b);return a&&a.index==0&&a[0].length==b.length});jQuery.validator.addMethod("userNameExists",function(c,a,e){if(this.optional(a))return true;var d=e;if(c!=d){var b=this;Seeems.BackOffice.Services.BackOfficeService.CheckUserNameExists(c,function(d){valid=!d;if(!valid){var c={};c[a.name]=b.defaultMessage(a,"userNameExists");b.showErrors(c)}})}return true});jQuery.validator.addMethod("componentNotExists",function(c,a,d){if(this.optional(a))return true;var e=d;if(c!=e){var b=this;Seeems.BackOffice.Services.BackOfficeService.CheckComponentExists(c,function(d){valid=d;if(!valid){var c={};c[a.name]=b.defaultMessage(a,"componentNotExists");b.showErrors(c)}})}return true})