//!---------------------------------------------------------- //! Copyright (C) Microsoft Corporation. All rights reserved. //!---------------------------------------------------------- //! MicrosoftMvcAjax.js Type.registerNamespace('Sys.Mvc'); //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.AjaxOptions Sys.Mvc.$create_AjaxOptions = function Sys_Mvc_AjaxOptions() { return {}; } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.InsertionMode Sys.Mvc.InsertionMode = function() { /// /// /// /// /// /// }; Sys.Mvc.InsertionMode.prototype = { replace: 0, insertBefore: 1, insertAfter: 2 } Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode', false); //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.JsonValidationField Sys.Mvc.$create_JsonValidationField = function Sys_Mvc_JsonValidationField() { return {}; } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.JsonValidationOptions Sys.Mvc.$create_JsonValidationOptions = function Sys_Mvc_JsonValidationOptions() { return {}; } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.JsonValidationRule Sys.Mvc.$create_JsonValidationRule = function Sys_Mvc_JsonValidationRule() { return {}; } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.AjaxContext Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) { /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// this._request = request; this._updateTarget = updateTarget; this._loadingElement = loadingElement; this._insertionMode = insertionMode; } Sys.Mvc.AjaxContext.prototype = { _insertionMode: 0, _loadingElement: null, _response: null, _request: null, _updateTarget: null, get_data: function Sys_Mvc_AjaxContext$get_data() { /// if (this._response) { return this._response.get_responseData(); } else { return null; } }, get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() { /// return this._insertionMode; }, get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() { /// return this._loadingElement; }, get_object: function Sys_Mvc_AjaxContext$get_object() { /// var executor = this.get_response(); return (executor) ? executor.get_object() : null; }, get_response: function Sys_Mvc_AjaxContext$get_response() { /// return this._response; }, set_response: function Sys_Mvc_AjaxContext$set_response(value) { /// this._response = value; return value; }, get_request: function Sys_Mvc_AjaxContext$get_request() { /// return this._request; }, get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() { /// return this._updateTarget; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.AsyncHyperlink Sys.Mvc.AsyncHyperlink = function Sys_Mvc_AsyncHyperlink() { } Sys.Mvc.AsyncHyperlink.handleClick = function Sys_Mvc_AsyncHyperlink$handleClick(anchor, evt, ajaxOptions) { /// /// /// /// /// /// evt.preventDefault(); Sys.Mvc.MvcHelpers._asyncRequest(anchor.href, 'post', '', anchor, ajaxOptions); } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.FieldValidation Sys.Mvc.FieldValidation = function Sys_Mvc_FieldValidation(formValidation, fieldElements, validationMessageElement, replaceValidationMessageContents) { /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// this._errors = []; this._validators = []; this._formValidation = formValidation; this._fieldElements = fieldElements; this._validationMessageElement = validationMessageElement; this._replaceValidationMessageContents = replaceValidationMessageContents; this._onBlurHandler = Function.createDelegate(this, this._element_OnBlur); this._onChangeHandler = Function.createDelegate(this, this._element_OnChange); this._onInputHandler = Function.createDelegate(this, this._element_OnInput); this._onPropertyChangeHandler = Function.createDelegate(this, this._element_OnPropertyChange); } Sys.Mvc.FieldValidation.prototype = { _onBlurHandler: null, _onChangeHandler: null, _onInputHandler: null, _onPropertyChangeHandler: null, _fieldElements: null, _formValidation: null, _replaceValidationMessageContents: false, _validationMessageElement: null, addError: function Sys_Mvc_FieldValidation$addError(message) { /// /// this.addErrors([ message ]); }, addErrors: function Sys_Mvc_FieldValidation$addErrors(messages) { /// /// if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) { Array.addRange(this._errors, messages); this._onErrorCountChanged(); } }, addValidator: function Sys_Mvc_FieldValidation$addValidator(validator) { /// /// Array.add(this._validators, validator); }, disableDynamicValidation: function Sys_Mvc_FieldValidation$disableDynamicValidation() { for (var i = 0; i < this._fieldElements.length; i++) { var fieldElement = this._fieldElements[i]; if (Sys.Mvc._validationUtil.elementSupportsEvent(fieldElement, 'onpropertychange')) { Sys.UI.DomEvent.removeHandler(fieldElement, 'propertychange', this._onPropertyChangeHandler); } else { Sys.UI.DomEvent.removeHandler(fieldElement, 'input', this._onInputHandler); } Sys.UI.DomEvent.removeHandler(fieldElement, 'change', this._onChangeHandler); Sys.UI.DomEvent.removeHandler(fieldElement, 'blur', this._onBlurHandler); } }, _displayError: function Sys_Mvc_FieldValidation$_displayError() { if (this._validationMessageElement) { if (this._replaceValidationMessageContents) { Sys.Mvc._validationUtil.setInnerText(this._validationMessageElement, this._errors[0]); } Sys.UI.DomElement.removeCssClass(this._validationMessageElement, Sys.Mvc.FieldValidation._validationMessageValidCss); Sys.UI.DomElement.addCssClass(this._validationMessageElement, Sys.Mvc.FieldValidation._validationMessageErrorCss); } for (var i = 0; i < this._fieldElements.length; i++) { var fieldElement = this._fieldElements[i]; Sys.UI.DomElement.removeCssClass(fieldElement, Sys.Mvc.FieldValidation._inputElementValidCss); Sys.UI.DomElement.addCssClass(fieldElement, Sys.Mvc.FieldValidation._inputElementErrorCss); } }, _displaySuccess: function Sys_Mvc_FieldValidation$_displaySuccess() { if (this._validationMessageElement) { if (this._replaceValidationMessageContents) { Sys.Mvc._validationUtil.setInnerText(this._validationMessageElement, ''); } Sys.UI.DomElement.removeCssClass(this._validationMessageElement, Sys.Mvc.FieldValidation._validationMessageErrorCss); Sys.UI.DomElement.addCssClass(this._validationMessageElement, Sys.Mvc.FieldValidation._validationMessageValidCss); } for (var i = 0; i < this._fieldElements.length; i++) { var fieldElement = this._fieldElements[i]; Sys.UI.DomElement.removeCssClass(fieldElement, Sys.Mvc.FieldValidation._inputElementErrorCss); Sys.UI.DomElement.addCssClass(fieldElement, Sys.Mvc.FieldValidation._inputElementValidCss); } }, _element_OnInput: function Sys_Mvc_FieldValidation$_element_OnInput(e) { /// /// e.target[Sys.Mvc.FieldValidation._hasTextChangedTag] = true; if (e.target[Sys.Mvc.FieldValidation._hasValidationFiredTag]) { this.validate(); } }, _element_OnBlur: function Sys_Mvc_FieldValidation$_element_OnBlur(e) { /// /// if (e.target[Sys.Mvc.FieldValidation._hasTextChangedTag] || e.target[Sys.Mvc.FieldValidation._hasValidationFiredTag]) { this.validate(); } }, _element_OnChange: function Sys_Mvc_FieldValidation$_element_OnChange(e) { /// /// e.target[Sys.Mvc.FieldValidation._hasTextChangedTag] = true; }, _element_OnPropertyChange: function Sys_Mvc_FieldValidation$_element_OnPropertyChange(e) { /// /// if (e.rawEvent.propertyName === 'value') { e.target[Sys.Mvc.FieldValidation._hasTextChangedTag] = true; if (e.target[Sys.Mvc.FieldValidation._hasValidationFiredTag]) { this.validate(); } } }, enableDynamicValidation: function Sys_Mvc_FieldValidation$enableDynamicValidation() { for (var i = 0; i < this._fieldElements.length; i++) { var fieldElement = this._fieldElements[i]; if (Sys.Mvc._validationUtil.elementSupportsEvent(fieldElement, 'onpropertychange')) { Sys.UI.DomEvent.addHandler(fieldElement, 'propertychange', this._onPropertyChangeHandler); } else { Sys.UI.DomEvent.addHandler(fieldElement, 'input', this._onInputHandler); } Sys.UI.DomEvent.addHandler(fieldElement, 'change', this._onChangeHandler); Sys.UI.DomEvent.addHandler(fieldElement, 'blur', this._onBlurHandler); } }, _getStringValue: function Sys_Mvc_FieldValidation$_getStringValue() { /// return (this._fieldElements.length > 0) ? this._fieldElements[0].value : null; }, _onErrorCountChanged: function Sys_Mvc_FieldValidation$_onErrorCountChanged() { if (!this._errors.length) { this._displaySuccess(); } else { this._displayError(); } }, removeAllErrors: function Sys_Mvc_FieldValidation$removeAllErrors() { Array.clear(this._errors); this._onErrorCountChanged(); }, validate: function Sys_Mvc_FieldValidation$validate() { /// var allErrors = []; for (var i = 0; i < this._validators.length; i++) { var validator = this._validators[i]; var thisErrors = validator.validate(this, this._fieldElements, this._getStringValue()); if (thisErrors) { Array.addRange(allErrors, thisErrors); } } for (var i = 0; i < this._fieldElements.length; i++) { var fieldElement = this._fieldElements[i]; fieldElement[Sys.Mvc.FieldValidation._hasValidationFiredTag] = true; } this.removeAllErrors(); this.addErrors(allErrors); return allErrors; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.FormValidation Sys.Mvc.FormValidation = function Sys_Mvc_FormValidation(formElement, validationSummaryElement) { /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// this._errors = []; this._fieldValidations = []; this._formElement = formElement; this._validationSummaryElement = validationSummaryElement; formElement[Sys.Mvc.FormValidation._formValidationTag] = this; if (validationSummaryElement) { var ulElements = validationSummaryElement.getElementsByTagName('ul'); if (ulElements.length > 0) { this._validationSummaryULElement = ulElements[0]; } } this._onSubmitHandler = Function.createDelegate(this, this._form_OnSubmit); } Sys.Mvc.FormValidation.enableClientValidation = function Sys_Mvc_FormValidation$enableClientValidation(options, userState) { /// /// /// /// Sys.Application.add_load(Function.createDelegate(null, function(sender, e) { Sys.Mvc.FormValidation.parseJsonOptions(options); })); } Sys.Mvc.FormValidation._getFormElementsWithName = function Sys_Mvc_FormValidation$_getFormElementsWithName(formElement, name) { /// /// /// /// /// var allElementsWithNameInForm = []; var allElementsWithName = document.getElementsByName(name); for (var i = 0; i < allElementsWithName.length; i++) { var thisElement = allElementsWithName[i]; if (Sys.Mvc.FormValidation._isElementInHierarchy(formElement, thisElement)) { Array.add(allElementsWithNameInForm, thisElement); } } return allElementsWithNameInForm; } Sys.Mvc.FormValidation.getValidationForForm = function Sys_Mvc_FormValidation$getValidationForForm(formElement) { /// /// /// return formElement[Sys.Mvc.FormValidation._formValidationTag]; } Sys.Mvc.FormValidation._isElementInHierarchy = function Sys_Mvc_FormValidation$_isElementInHierarchy(parent, child) { /// /// /// /// /// while (child) { if (parent === child) { return true; } child = child.parentNode; } return false; } Sys.Mvc.FormValidation.parseJsonOptions = function Sys_Mvc_FormValidation$parseJsonOptions(options) { /// /// /// var formElement = $get(options.FormId); var validationSummaryElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(options.ValidationSummaryId)) ? $get(options.ValidationSummaryId) : null; var formValidation = new Sys.Mvc.FormValidation(formElement, validationSummaryElement); formValidation.enableDynamicValidation(); for (var i = 0; i < options.Fields.length; i++) { var field = options.Fields[i]; var fieldElements = Sys.Mvc.FormValidation._getFormElementsWithName(formElement, field.FieldName); var validationMessageElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(field.ValidationMessageId)) ? $get(field.ValidationMessageId) : null; var fieldValidation = new Sys.Mvc.FieldValidation(formValidation, fieldElements, validationMessageElement, field.ReplaceValidationMessageContents); for (var j = 0; j < field.ValidationRules.length; j++) { var rule = field.ValidationRules[j]; var validator = Sys.Mvc.ValidatorRegistry.getValidator(rule); if (validator) { fieldValidation.addValidator(validator); } } fieldValidation.enableDynamicValidation(); formValidation.addFieldValidation(fieldValidation); } return formValidation; } Sys.Mvc.FormValidation.prototype = { _onSubmitHandler: null, _formElement: null, _validationSummaryElement: null, _validationSummaryULElement: null, addError: function Sys_Mvc_FormValidation$addError(message) { /// /// this.addErrors([ message ]); }, addErrors: function Sys_Mvc_FormValidation$addErrors(messages) { /// /// if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) { Array.addRange(this._errors, messages); this._onErrorCountChanged(); } }, addFieldValidation: function Sys_Mvc_FormValidation$addFieldValidation(validation) { /// /// Array.add(this._fieldValidations, validation); }, disableDynamicValidation: function Sys_Mvc_FormValidation$disableDynamicValidation() { Sys.UI.DomEvent.removeHandler(this._formElement, 'submit', this._onSubmitHandler); }, _displayError: function Sys_Mvc_FormValidation$_displayError() { if (this._validationSummaryElement) { if (this._validationSummaryULElement) { Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement); for (var i = 0; i < this._errors.length; i++) { var liElement = document.createElement('li'); Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]); this._validationSummaryULElement.appendChild(liElement); } } Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormValidation._validationSummaryValidCss); Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormValidation._validationSummaryErrorCss); } }, _displaySuccess: function Sys_Mvc_FormValidation$_displaySuccess() { if (this._validationSummaryElement) { if (this._validationSummaryULElement) { this._validationSummaryULElement.innerHTML = ''; } Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormValidation._validationSummaryErrorCss); Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormValidation._validationSummaryValidCss); } }, enableDynamicValidation: function Sys_Mvc_FormValidation$enableDynamicValidation() { Sys.UI.DomEvent.addHandler(this._formElement, 'submit', this._onSubmitHandler); }, _form_OnSubmit: function Sys_Mvc_FormValidation$_form_OnSubmit(e) { /// /// var form = e.target; var errorMessages = this.validate(true); if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(errorMessages)) { e.preventDefault(); } }, _onErrorCountChanged: function Sys_Mvc_FormValidation$_onErrorCountChanged() { if (!this._errors.length) { this._displaySuccess(); } else { this._displayError(); } }, removeAllErrors: function Sys_Mvc_FormValidation$removeAllErrors() { Array.clear(this._errors); this._onErrorCountChanged(); }, validate: function Sys_Mvc_FormValidation$validate(replaceValidationSummary) { /// /// /// var allErrors = []; for (var i = 0; i < this._fieldValidations.length; i++) { var validation = this._fieldValidations[i]; var thisErrors = validation.validate(); if (thisErrors) { Array.addRange(allErrors, thisErrors); } } if (replaceValidationSummary) { this.removeAllErrors(); this.addErrors(allErrors); } return allErrors; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.MvcHelpers Sys.Mvc.MvcHelpers = function Sys_Mvc_MvcHelpers() { } Sys.Mvc.MvcHelpers._serializeSubmitButton = function Sys_Mvc_MvcHelpers$_serializeSubmitButton(element, offsetX, offsetY) { /// /// /// /// /// /// /// if (element.disabled) { return null; } var name = element.name; if (name) { var tagName = element.tagName.toUpperCase(); var encodedName = encodeURIComponent(name); var inputElement = element; if (tagName === 'INPUT') { var type = inputElement.type; if (type === 'submit') { return encodedName + '=' + encodeURIComponent(inputElement.value); } else if (type === 'image') { return encodedName + '.x=' + offsetX + '&' + encodedName + '.y=' + offsetY; } } else if ((tagName === 'BUTTON') && (name.length) && (inputElement.type === 'submit')) { return encodedName + '=' + encodeURIComponent(inputElement.value); } } return null; } Sys.Mvc.MvcHelpers._serializeForm = function Sys_Mvc_MvcHelpers$_serializeForm(form) { /// /// /// var formElements = form.elements; var formBody = new Sys.StringBuilder(); var count = formElements.length; for (var i = 0; i < count; i++) { var element = formElements[i]; var name = element.name; if (!name || !name.length) { continue; } var tagName = element.tagName.toUpperCase(); if (tagName === 'INPUT') { var inputElement = element; var type = inputElement.type; if ((type === 'text') || (type === 'password') || (type === 'hidden') || (((type === 'checkbox') || (type === 'radio')) && element.checked)) { formBody.append(encodeURIComponent(name)); formBody.append('='); formBody.append(encodeURIComponent(inputElement.value)); formBody.append('&'); } } else if (tagName === 'SELECT') { var selectElement = element; var optionCount = selectElement.options.length; for (var j = 0; j < optionCount; j++) { var optionElement = selectElement.options[j]; if (optionElement.selected) { formBody.append(encodeURIComponent(name)); formBody.append('='); formBody.append(encodeURIComponent(optionElement.value)); formBody.append('&'); } } } else if (tagName === 'TEXTAREA') { formBody.append(encodeURIComponent(name)); formBody.append('='); formBody.append(encodeURIComponent((element.value))); formBody.append('&'); } } var additionalInput = form._additionalInput; if (additionalInput) { formBody.append(additionalInput); formBody.append('&'); } return formBody.toString(); } Sys.Mvc.MvcHelpers._asyncRequest = function Sys_Mvc_MvcHelpers$_asyncRequest(url, verb, body, triggerElement, ajaxOptions) { /// /// /// /// /// /// /// /// /// /// if (ajaxOptions.confirm) { if (!confirm(ajaxOptions.confirm)) { return; } } if (ajaxOptions.url) { url = ajaxOptions.url; } if (ajaxOptions.httpMethod) { verb = ajaxOptions.httpMethod; } if (body.length > 0 && !body.endsWith('&')) { body += '&'; } body += 'X-Requested-With=XMLHttpRequest'; var upperCaseVerb = verb.toUpperCase(); var isGetOrPost = (upperCaseVerb === 'GET' || upperCaseVerb === 'POST'); if (!isGetOrPost) { body += '&'; body += 'X-HTTP-Method-Override=' + upperCaseVerb; } var requestBody = ''; if (upperCaseVerb === 'GET' || upperCaseVerb === 'DELETE') { if (url.indexOf('?') > -1) { if (!url.endsWith('&')) { url += '&'; } url += body; } else { url += '?'; url += body; } } else { requestBody = body; } var request = new Sys.Net.WebRequest(); request.set_url(url); if (isGetOrPost) { request.set_httpVerb(verb); } else { request.set_httpVerb('POST'); request.get_headers()['X-HTTP-Method-Override'] = upperCaseVerb; } request.set_body(requestBody); if (verb.toUpperCase() === 'PUT') { request.get_headers()['Content-Type'] = 'application/x-www-form-urlencoded;'; } request.get_headers()['X-Requested-With'] = 'XMLHttpRequest'; var updateElement = null; if (ajaxOptions.updateTargetId) { updateElement = $get(ajaxOptions.updateTargetId); } var loadingElement = null; if (ajaxOptions.loadingElementId) { loadingElement = $get(ajaxOptions.loadingElementId); } var ajaxContext = new Sys.Mvc.AjaxContext(request, updateElement, loadingElement, ajaxOptions.insertionMode); var continueRequest = true; if (ajaxOptions.onBegin) { continueRequest = ajaxOptions.onBegin(ajaxContext) !== false; } if (loadingElement) { Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), true); } if (continueRequest) { request.add_completed(Function.createDelegate(null, function(executor) { Sys.Mvc.MvcHelpers._onComplete(request, ajaxOptions, ajaxContext); })); request.invoke(); } } Sys.Mvc.MvcHelpers._onComplete = function Sys_Mvc_MvcHelpers$_onComplete(request, ajaxOptions, ajaxContext) { /// /// /// /// /// /// ajaxContext.set_response(request.get_executor()); if (ajaxOptions.onComplete && ajaxOptions.onComplete(ajaxContext) === false) { return; } var statusCode = ajaxContext.get_response().get_statusCode(); if ((statusCode >= 200 && statusCode < 300) || statusCode === 304 || statusCode === 1223) { if (statusCode !== 204 && statusCode !== 304 && statusCode !== 1223) { var contentType = ajaxContext.get_response().getResponseHeader('Content-Type'); if ((contentType) && (contentType.indexOf('application/x-javascript') !== -1)) { eval(ajaxContext.get_data()); } else { Sys.Mvc.MvcHelpers.updateDomElement(ajaxContext.get_updateTarget(), ajaxContext.get_insertionMode(), ajaxContext.get_data()); } } if (ajaxOptions.onSuccess) { ajaxOptions.onSuccess(ajaxContext); } } else { if (ajaxOptions.onFailure) { ajaxOptions.onFailure(ajaxContext); } } if (ajaxContext.get_loadingElement()) { Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), false); } } Sys.Mvc.MvcHelpers.updateDomElement = function Sys_Mvc_MvcHelpers$updateDomElement(target, insertionMode, content) { /// /// /// /// /// /// if (target) { switch (insertionMode) { case Sys.Mvc.InsertionMode.replace: target.innerHTML = content; break; case Sys.Mvc.InsertionMode.insertBefore: if (content && content.length > 0) { target.innerHTML = content + target.innerHTML.trimStart(); } break; case Sys.Mvc.InsertionMode.insertAfter: if (content && content.length > 0) { target.innerHTML = target.innerHTML.trimEnd() + content; } break; } } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.AsyncForm Sys.Mvc.AsyncForm = function Sys_Mvc_AsyncForm() { } Sys.Mvc.AsyncForm.handleClick = function Sys_Mvc_AsyncForm$handleClick(form, evt) { /// /// /// /// var additionalInput = Sys.Mvc.MvcHelpers._serializeSubmitButton(evt.target, evt.offsetX, evt.offsetY); form._additionalInput = additionalInput; } Sys.Mvc.AsyncForm.handleSubmit = function Sys_Mvc_AsyncForm$handleSubmit(form, evt, ajaxOptions) { /// /// /// /// /// /// evt.preventDefault(); var body = Sys.Mvc.MvcHelpers._serializeForm(form); Sys.Mvc.MvcHelpers._asyncRequest(form.action, form.method || 'post', body, form, ajaxOptions); } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.RangeValidator Sys.Mvc.RangeValidator = function Sys_Mvc_RangeValidator(errorMessage, minimum, maximum) { /// /// /// /// /// /// /// /// /// /// /// /// Sys.Mvc.RangeValidator.initializeBase(this); this._errorMessage$1 = errorMessage; this._minimum$1 = minimum; this._maximum$1 = maximum; } Sys.Mvc.RangeValidator._create = function Sys_Mvc_RangeValidator$_create(rule) { /// /// /// var min = rule.ValidationParameters['minimum']; var max = rule.ValidationParameters['maximum']; return new Sys.Mvc.RangeValidator(rule.ErrorMessage, min, max); } Sys.Mvc.RangeValidator.prototype = { _errorMessage$1: null, _minimum$1: null, _maximum$1: null, validate: function Sys_Mvc_RangeValidator$validate(validation, elements, value) { /// /// /// /// /// /// /// if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) { return null; } var n = Number.parseLocale(value); return (isNaN(n) || n < this._minimum$1 || n > this._maximum$1) ? [ this._errorMessage$1 ] : null; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.RegularExpressionValidator Sys.Mvc.RegularExpressionValidator = function Sys_Mvc_RegularExpressionValidator(errorMessage, pattern) { /// /// /// /// /// /// /// /// Sys.Mvc.RegularExpressionValidator.initializeBase(this); this._errorMessage$1 = errorMessage; this._pattern$1 = pattern; } Sys.Mvc.RegularExpressionValidator._create = function Sys_Mvc_RegularExpressionValidator$_create(rule) { /// /// /// var pattern = rule.ValidationParameters['pattern']; return new Sys.Mvc.RegularExpressionValidator(rule.ErrorMessage, pattern); } Sys.Mvc.RegularExpressionValidator.prototype = { _errorMessage$1: null, _pattern$1: null, validate: function Sys_Mvc_RegularExpressionValidator$validate(validation, elements, value) { /// /// /// /// /// /// /// if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) { return null; } var regExp = new RegExp(this._pattern$1); var matches = regExp.exec(value); return (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(matches) && matches[0].length === value.length) ? null : [ this._errorMessage$1 ]; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.RequiredValidator Sys.Mvc.RequiredValidator = function Sys_Mvc_RequiredValidator(errorMessage) { /// /// /// /// Sys.Mvc.RequiredValidator.initializeBase(this); this._errorMessage$1 = errorMessage; } Sys.Mvc.RequiredValidator._create = function Sys_Mvc_RequiredValidator$_create(rule) { /// /// /// return new Sys.Mvc.RequiredValidator(rule.ErrorMessage); } Sys.Mvc.RequiredValidator._isRadioInputElement$1 = function Sys_Mvc_RequiredValidator$_isRadioInputElement$1(element) { /// /// /// if (element.tagName.toUpperCase() === 'INPUT') { var inputType = (element.type).toUpperCase(); if (inputType === 'RADIO') { return true; } } return false; } Sys.Mvc.RequiredValidator._isSelectInputElement$1 = function Sys_Mvc_RequiredValidator$_isSelectInputElement$1(element) { /// /// /// if (element.tagName.toUpperCase() === 'SELECT') { return true; } return false; } Sys.Mvc.RequiredValidator._isTextualInputElement$1 = function Sys_Mvc_RequiredValidator$_isTextualInputElement$1(element) { /// /// /// if (element.tagName.toUpperCase() === 'INPUT') { var inputType = (element.type).toUpperCase(); switch (inputType) { case 'TEXT': case 'PASSWORD': case 'FILE': return true; } } if (element.tagName.toUpperCase() === 'TEXTAREA') { return true; } return false; } Sys.Mvc.RequiredValidator.prototype = { _errorMessage$1: null, validate: function Sys_Mvc_RequiredValidator$validate(validation, elements, value) { /// /// /// /// /// /// /// if (!elements.length) { return null; } var sampleElement = elements[0]; if (Sys.Mvc.RequiredValidator._isTextualInputElement$1(sampleElement)) { return this._validateTextualInput$1(sampleElement); } if (Sys.Mvc.RequiredValidator._isRadioInputElement$1(sampleElement)) { return this._validateRadioInput$1(elements); } if (Sys.Mvc.RequiredValidator._isSelectInputElement$1(sampleElement)) { return this._validateSelectInput$1((sampleElement).options); } return null; }, _validateRadioInput$1: function Sys_Mvc_RequiredValidator$_validateRadioInput$1(elements) { /// /// /// for (var i = 0; i < elements.length; i++) { var element = elements[i]; if (element.checked) { return null; } } return [ this._errorMessage$1 ]; }, _validateSelectInput$1: function Sys_Mvc_RequiredValidator$_validateSelectInput$1(optionElements) { /// /// /// for (var i = 0; i < optionElements.length; i++) { var element = optionElements[i]; if (element.selected) { if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value)) { return null; } } } return [ this._errorMessage$1 ]; }, _validateTextualInput$1: function Sys_Mvc_RequiredValidator$_validateTextualInput$1(element) { /// /// /// return (Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value)) ? [ this._errorMessage$1 ] : null; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.StringLengthValidator Sys.Mvc.StringLengthValidator = function Sys_Mvc_StringLengthValidator(errorMessage, minLength, maxLength) { /// /// /// /// /// /// /// /// /// /// /// /// Sys.Mvc.StringLengthValidator.initializeBase(this); this._errorMessage$1 = errorMessage; this._minLength$1 = minLength; this._maxLength$1 = maxLength; } Sys.Mvc.StringLengthValidator._create = function Sys_Mvc_StringLengthValidator$_create(rule) { /// /// /// var minLength = rule.ValidationParameters['minimumLength']; var maxLength = rule.ValidationParameters['maximumLength']; return new Sys.Mvc.StringLengthValidator(rule.ErrorMessage, minLength, maxLength); } Sys.Mvc.StringLengthValidator.prototype = { _errorMessage$1: null, _maxLength$1: 0, _minLength$1: 0, validate: function Sys_Mvc_StringLengthValidator$validate(validation, elements, value) { /// /// /// /// /// /// /// if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) { return null; } return (this._minLength$1 <= value.length && value.length <= this._maxLength$1) ? null : [ this._errorMessage$1 ]; } } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc._validationUtil Sys.Mvc._validationUtil = function Sys_Mvc__validationUtil() { } Sys.Mvc._validationUtil.arrayIsNullOrEmpty = function Sys_Mvc__validationUtil$arrayIsNullOrEmpty(array) { /// /// /// return (!array || !array.length); } Sys.Mvc._validationUtil.stringIsNullOrEmpty = function Sys_Mvc__validationUtil$stringIsNullOrEmpty(value) { /// /// /// return (!value || !value.length); } Sys.Mvc._validationUtil.elementSupportsEvent = function Sys_Mvc__validationUtil$elementSupportsEvent(element, eventAttributeName) { /// /// /// /// /// return (eventAttributeName in element); } Sys.Mvc._validationUtil.removeAllChildren = function Sys_Mvc__validationUtil$removeAllChildren(element) { /// /// while (element.firstChild) { element.removeChild(element.firstChild); } } Sys.Mvc._validationUtil.setInnerText = function Sys_Mvc__validationUtil$setInnerText(element, innerText) { /// /// /// /// var textNode = document.createTextNode(innerText); Sys.Mvc._validationUtil.removeAllChildren(element); element.appendChild(textNode); } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.Validator Sys.Mvc.Validator = function Sys_Mvc_Validator() { } //////////////////////////////////////////////////////////////////////////////// // Sys.Mvc.ValidatorRegistry Sys.Mvc.ValidatorRegistry = function Sys_Mvc_ValidatorRegistry() { /// /// } Sys.Mvc.ValidatorRegistry.get_creators = function Sys_Mvc_ValidatorRegistry$get_creators() { /// return Sys.Mvc.ValidatorRegistry._validators; } Sys.Mvc.ValidatorRegistry.getValidator = function Sys_Mvc_ValidatorRegistry$getValidator(rule) { /// /// /// var creator = Sys.Mvc.ValidatorRegistry._validators[rule.ValidationType]; return (creator) ? creator(rule) : null; } Sys.Mvc.ValidatorRegistry._getDefaultValidators = function Sys_Mvc_ValidatorRegistry$_getDefaultValidators() { /// return { required: Function.createDelegate(null, Sys.Mvc.RequiredValidator._create), stringLength: Function.createDelegate(null, Sys.Mvc.StringLengthValidator._create), regularExpression: Function.createDelegate(null, Sys.Mvc.RegularExpressionValidator._create), range: Function.createDelegate(null, Sys.Mvc.RangeValidator._create) }; } Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext'); Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink'); Sys.Mvc.FieldValidation.registerClass('Sys.Mvc.FieldValidation'); Sys.Mvc.FormValidation.registerClass('Sys.Mvc.FormValidation'); Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers'); Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm'); Sys.Mvc.Validator.registerClass('Sys.Mvc.Validator'); Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator', Sys.Mvc.Validator); Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator', Sys.Mvc.Validator); Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator', Sys.Mvc.Validator); Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator', Sys.Mvc.Validator); Sys.Mvc._validationUtil.registerClass('Sys.Mvc._validationUtil'); Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry'); Sys.Mvc.FieldValidation._hasTextChangedTag = '__MVC_HasTextChanged'; Sys.Mvc.FieldValidation._hasValidationFiredTag = '__MVC_HasValidationFired'; Sys.Mvc.FieldValidation._inputElementErrorCss = 'input-validation-error'; Sys.Mvc.FieldValidation._inputElementValidCss = 'input-validation-valid'; Sys.Mvc.FieldValidation._validationMessageErrorCss = 'field-validation-error'; Sys.Mvc.FieldValidation._validationMessageValidCss = 'field-validation-valid'; Sys.Mvc.FormValidation._validationSummaryErrorCss = 'validation-summary-errors'; Sys.Mvc.FormValidation._validationSummaryValidCss = 'validation-summary-valid'; Sys.Mvc.FormValidation._formValidationTag = '__MVC_FormValidation'; Sys.Mvc.ValidatorRegistry._validators = Sys.Mvc.ValidatorRegistry._getDefaultValidators(); // ---- Do not remove this footer ---- // Generated using Script# v0.5.0.0 (http://projects.nikhilk.net) // -----------------------------------