Type.registerNamespace("Telerik.Sitefinity.Web.UI.Validation"); Telerik.Sitefinity.Web.UI.Validation.Validator=function(validatorDefinition){this._expectedFormat=null; this._maxLength=null; this._minLength=null; this._maxValue=null; this._minValue=null; this._regularExpression=null; this._required=null; this._alphaNumericViolationMessage=null; this._currencyViolationMessage=null; this._emailAddressViolationMessage=null; this._integerViolationMessage=null; this._internetUrlViolationMessage=null; this._maxLengthViolationMessage=null; this._maxValueViolationMessage=null; this._messageCssClass=null; this._messageTagName=null; this._minLengthViolationMessage=null; this._minValueViolationMessage=null; this._nonAlphaNumericViolationMessage=null; this._numericViolationMessage=null; this._percentageViolationMessage=null; this._regularExpressionViolationMessage=null; this._requiredViolationMessage=null; this._uSocialSecurityNumberViolationMessage=null; this._uSZipCodeViolationMessage=null; this._validateIfInvisible=null; this._comparingValidatorDefinitions=null; this._regularExpressionSeparator=null; this._violationMessages=[]; this._violationMessageElement=null; this._validatorDefinition=validatorDefinition; this.alphaNumericRegexPattern=/[-_a-zA-Z0-9]+$/; this.currencyRegexPattern=/[+-]?[0-9]{1,3}(?:[0-9]*(?:[.,][0-9]{2})?|(?:,[0-9]{3})*(?:\.[0-9]{2})?|(?:\.[0-9]{3})*(?:,[0-9]{2})?)/; this.emailAddressRegexPattern=/^[a-zA-Z0-9._%+'-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,63}$/i; this.integerRegexPattern=/^[-+]?\d+$/; this.internetUrlRegexPattern=/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Za-z0-9+&@#\/%=~_|$?!:,.]*[A-Za-z0-9+&@#\/%=~_|$]/; this.nonAlphaNumericRegexPattern=/[^-_a-zA-Z0-9]+/; this.numericRegexPattern=/^[-+]?[0-9]+((,|\.)[0-9]+)?/; this.percentRegexPattern=/100$|^\s*(\d{0,2})((\.|\,)(\d*))?\s*\%?\s*/; this.uSSocialSecurityRegexPattern=/(?!000)(?!666)(?:[0-6]\d{2}|7(?:[0-356]\d|7[012]))[- ](?!00)\d{2}[- ](?!0000)\d{4}/; this.uSZipCodeRegexPattern=/[0-9]{5}(?:-[0-9]{4})?/; this._violationMessageElementWasCreated=false; Telerik.Sitefinity.Web.UI.Validation.Validator.initializeBase(this); this.initialize(); }; Telerik.Sitefinity.Web.UI.Validation.Validator.prototype={initialize:function(){this.configure(this._validatorDefinition); delete this._validatorDefinition; Telerik.Sitefinity.Web.UI.Validation.Validator.callBaseMethod(this,"initialize"); },dispose:function(){Telerik.Sitefinity.Web.UI.Validation.Validator.callBaseMethod(this,"dispose"); },validate:function(value){var isValid=true; this.set_violationMessages([]); var validatingArgs=this._onValidatingHandler(value); isValid=validatingArgs.get_isValid(); if(!validatingArgs.get_cancel()){isValid=this._evaluateIsValid(value); }this._onValidatedHandler(isValid,value); return isValid; },configure:function(definition){for(var validatorDefPropertyName in definition){this._setPropertyIfChanged(validatorDefPropertyName,definition[validatorDefPropertyName]); }},add_onValidating:function(delegate){this.get_events().addHandler("onValidating",delegate); },remove_onValidating:function(delegate){this.get_events().removeHandler("onValidating",delegate); },add_onValidated:function(delegate){this.get_events().addHandler("onValidated",delegate); },remove_onValidated:function(delegate){this.get_events().removeHandler("onValidated",delegate); },_onValidatingHandler:function(value){var eventArgs=new Telerik.Sitefinity.Web.UI.Validation.ValidatingEventArgs(value); var h=this.get_events().getHandler("onValidating"); if(h){h(this,eventArgs); }return eventArgs; },_onValidatedHandler:function(isValid,value){var eventArgs=new Telerik.Sitefinity.Web.UI.Validation.ValidatedEventArgs(isValid,value); var h=this.get_events().getHandler("onValidated"); if(h){h(this,eventArgs); }return eventArgs; },_evaluateIsValid:function(value){if(typeof value===typeof""){value=value.trim(); }if(this._validateRequired(value)){var isValid=true; isValid=this._validateRange(value)&&isValid; isValid=this._validateRegex(value)&&isValid; isValid=this._validateComparisons(value)&&isValid; return isValid; }return false; },_validateRequired:function(value){if(this.get_required()){if(!value||value===""||value===false||value==="00000000-0000-0000-0000-000000000000"){this.get_violationMessages().push(this.get_requiredViolationMessage()); return false; }else{if(Array.prototype.isPrototypeOf(value)){if(value.length==0){this.get_violationMessages().push(this.get_requiredViolationMessage()); return false; }}}}return true; },_validateRange:function(value){if(value!==null&&value!==undefined){if(!isNaN(value)&&(this.get_minValue()!=null||this.get_maxValue()!=null)){return this._validateNumericDateRange(value); }if(String.isInstanceOfType(value)||(typeof value)===(typeof"")){return this._validateStringRange(value); }if(!isNaN(value)&&Array.isInstanceOfType(value)){return this._validateArrayRange(value); }}return true; },_validateStringRange:function(value){if(this.get_minLength()>0){var isMinLengthValid=value.length>=this.get_minLength(); if(!isMinLengthValid){this.get_violationMessages().push(this.get_minLengthViolationMessage()); return false; }}if(this.get_maxLength()>0){var isMaxLengthValid=value.length<=this.get_maxLength(); if(!isMaxLengthValid){this.get_violationMessages().push(this.get_maxLengthViolationMessage()); return false; }}return true; },_validateNumericDateRange:function(value){if(this.get_minValue()!=null){var isMinValueValid=value>=this.get_minValue(); if(!isMinValueValid){this.get_violationMessages().push(this.get_minValueViolationMessage()); return false; }}if(this.get_maxValue()!=null){var isMaxValueValid=value<=this.get_maxValue(); if(!isMaxValueValid){this.get_violationMessages().push(this.get_maxValueViolationMessage()); return false; }}return true; },_validateArrayRange:function(value){if(value.length||value.length===0){var isMaxLengthValid=true; var isMinLengthValid=true; if(this.get_maxLength()>0){isMaxLengthValid=this.get_maxLength()<=value.length; }if(this.get_minLength()>0){isMinLengthValid=this.get_minLength()>=value.length; }if(isMinLengthValid&&isMaxLengthValid){return true; }this.get_violationMessages().push(this.get_maxLengthViolationMessage()); return false; }return false; },_validateRegex:function(value){if(String.isInstanceOfType(value)||(typeof value)===(typeof"")){return this._validateStringRegex(value); }return true; },_validateStringRegex:function(value){var regex=this.get_regularExpression(); if(regex){return this._validateCustomRegex(value,regex); }var expectedFormat=this.get_expectedFormat(); if(expectedFormat>0){return this._validateExpectedFormat(value,expectedFormat); }return true; },_validateExpectedFormat:function(value,expectedFormat){var isValid=true; switch(expectedFormat){case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.None:return true; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.AlphaNumeric:isValid=this.alphaNumericRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_alphaNumericViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.Currency:isValid=this.currencyRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_currencyViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.EmailAddress:isValid=this.emailAddressRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_emailAddressViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.Integer:isValid=this.integerRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_integerViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.InternetUrl:isValid=this.internetUrlRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_internetUrlViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.NonAlphaNumeric:isValid=this.nonAlphaNumericRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_nonAlphaNumericViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.Numeric:isValid=this.numericRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_numericViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.Percentage:isValid=this.percentRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_percentageViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.USSocialSecurityNumber:isValid=this.uSSocialSecurityRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_uSocialSecurityNumberViolationMessage()); }break; case Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationFormat.USZipCode:isValid=this.uSZipCodeRegexPattern.test(value); if(!isValid){this.get_violationMessages().push(this.get_uSZipCodeViolationMessage()); }break; }return isValid; },_validateCustomRegex:function(value,regex){var regexPattern=new XRegExp(regex,"g"); var isRegexValid=false; if(this.get_regularExpressionSeparator()){isRegexValid=true; if(value){regexPattern=new XRegExp(regex); var sepRegex=new RegExp(this.get_regularExpressionSeparator()); var splitArray=value.split(sepRegex); for(var i=0; i=0){var valueToCompareTo=this._get_controlValue(controlToCompareId); valueToCompareTo=this._getValueAsType(valueToCompareTo,validationDataType); isValid=this._compare(value,validationOperator,valueToCompareTo); if(!isValid){this.get_violationMessages().push(violationMessage); }}return isValid; },_getValueAsType:function(value,type){switch(type){case"Number":return Number(value); }return value; },_get_controlValue:function(controlToCompareId){var clientID=$get_clientId(controlToCompareId); if(!clientID){throw new "The client Id could not be resolved."; }var componentToCompareTo=$find(clientID); if(componentToCompareTo){return this._get_componentValue(componentToCompareTo); }else{var controlToCompareTo=$get(clientID); if(controlToCompareTo){return this._get_controlValue(controlToCompareTo); }}throw new "There is no control with id: "+controlID+" to use for comparison validation."; },_get_componentValue:function(componentToCompareTo){if(componentToCompareTo.get_value){return componentToCompareTo.get_value(); }if(componentToCompareTo.get_element){return this._get_elementValue(componentToCompareTo.get_element()); }throw new "The value of the control could not be resolved."; },_get_elementValue:function(controlToCompareTo){if(controlToCompareTo.value){return controlToCompareTo.value; }throw new "The value of the control could not be resolved."; },_compare:function(firstValue,validationOperator,secondValue){if(typeof firstValue!=typeof secondValue){return false; }var validationCompareOperator=Telerik.Sitefinity.Web.UI.Validation.Enums.ValidationCompareOperator; switch(validationOperator){case validationCompareOperator.Equal:return firstValue===secondValue; case validationCompareOperator.NotEqual:return firstValue!=secondValue; case validationCompareOperator.GreaterThan:return firstValue>secondValue; case validationCompareOperator.GreaterThanEqual:return firstValue>=secondValue; case validationCompareOperator.LessThan:return firstValue