GitHub
Tests: 12 • Commercial: 2 • Pet projects: 4 • Legacy: 4
Total: 22

.NET Framework

Test
2021

Project Request

ASP.NET MVC • C# • SQL Server
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2020

ProjectC

ASP.NET MVC • C# • JSON • jQuery
JSON data processing.
Test
2020

Vehicle Maintenance

ASP.NET MVC • VB.NET • JSON
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2019

Movie Navigator

ASP.NET MVC • VB.NET
Request information about movie from IMDB.
Test
2018

Customers Exchange

ASP.NET MVC • C# • SQL Server
Automated teller machine emulation.
Test
2016

ATM

ASP.NET MVC • C#
Automated teller machine emulation.

.NET Core

Pet project
2022

Mail Daemon

.NET 9 • Console • JSON
Utility to send mails with customizable settings.

Custom

Code
2024

Buns of code

.NET Framework • C# • JavaScript
Code snippets from my projects, ready to use; tiny tests; code examples.

PHP

Test
2024

Mediabox

PHP 8 • Laravel 11 • Vue.js • Composer • SQLite
Test project for media files management.
Test
2020

Loan Castle

PHP • MariaDB
Jums jāizstrādā kāda lielāk projekta prototips. Izstrādājot prototipu, paturiet prātā, ka projektam attīstoties, šo prototipu varētu vajadzēt pilnveidot.
Test
2020

Content Management

PHP • MySQL • AJAX
Создать простой сайт, где будет страница с формой для авторизации и страница для авторизованного пользователя.
Test
2019

Laravel

PHP • Laravel • Vue.js • Composer • SQLite
Izveidot aplikāciju, kura ik pēc noteikta intervāla (60 sekundes) veic ierakstu datubāzē izmantojot Laravel freimworka iebūvēto funkcionalitāti.
Test
2019

Phone Check

PHP • JavaScript • JSON • Docker
Implement application to detect country by phone number.

Frontend

Test
2021

Forex Wall

npm • React
For this exercise, what we need is a simple live wall for tracking currencies.

Business projects

Commercial
2008

Certification Center

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Dapper • JavaScript • jQuery • Git
Transport registration and certification services in Latvia, Customer Relationship Management.
Commercial
2000

Amerikas Auto

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Entity Framework • JavaScript • jQuery • Git
Car service and spare parts for all USA and European car models, Customer Relationship Management.

Pet projects

Pet project
2023

Geolocation Assistant

.NET 8 • ASP.NET Core • C# • Web API • JSON • Git
Website for determining geolocation by IP or geotagged photo.
Pet project
2008

Web Dynamics

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
Software development blog. Articles, books, videos, content management.
Pet project
2000

Blackball

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • XML • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
My entertainment portal created from scratch.

Good old times

Legacy
2000

DOS Clock

Turbo Pascal • Assembler
Digital clock.
Legacy
2000

BrainOut

Turbo Pascal • Assembler
Tank battle game.
Legacy
1999

Airport Administrator

Turbo Pascal
Курсовая работа в институте.
Legacy
1998

Atomizer

Turbo Pascal • Assembler
Atomizer, aka «Studio2D». Graphic raster editor. AGI is my own «Atomizer Generated Image» file format.

Project Request

2021 Test

Idea of the project: if someone wants to order a project development, here you can send an application.

ASP.NET MVC C# SQL Server
Information
Source code
  Core
Root / ProjectRequestTest.Web / Scripts / WebForms / WebUIValidation.js
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebUIValidation.js var Page_ValidationVer = "125"; var Page_IsValid = true; var Page_BlockSubmit = false; var Page_InvalidControlToBeFocused = null; var Page_TextTypes = /^(text|password|file|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i; function ValidatorUpdateDisplay(val) { if (typeof(val.display) == "string") { if (val.display == "None") { return; } if (val.display == "Dynamic") { val.style.display = val.isvalid ? "none" : "inline"; return; } } if ((navigator.userAgent.indexOf("Mac") > -1) && (navigator.userAgent.indexOf("MSIE") > -1)) { val.style.display = "inline"; } val.style.visibility = val.isvalid ? "hidden" : "visible"; } function ValidatorUpdateIsValid() { Page_IsValid = AllValidatorsValid(Page_Validators); } function AllValidatorsValid(validators) { if ((typeof(validators) != "undefined") && (validators != null)) { var i; for (i = 0; i < validators.length; i++) { if (!validators[i].isvalid) { return false; } } } return true; } function ValidatorHookupControlID(controlID, val) { if (typeof(controlID) != "string") { return; } var ctrl = document.getElementById(controlID); if ((typeof(ctrl) != "undefined") && (ctrl != null)) { ValidatorHookupControl(ctrl, val); } else { val.isvalid = true; val.enabled = false; } } function ValidatorHookupControl(control, val) { if (typeof(control.tagName) != "string") { return; } if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") { var i; for (i = 0; i < control.childNodes.length; i++) { ValidatorHookupControl(control.childNodes[i], val); } return; } else { if (typeof(control.Validators) == "undefined") { control.Validators = new Array; var eventType; if (control.type == "radio") { eventType = "onclick"; } else { eventType = "onchange"; if (typeof(val.focusOnError) == "string" && val.focusOnError == "t") { ValidatorHookupEvent(control, "onblur", "ValidatedControlOnBlur(event); "); } } ValidatorHookupEvent(control, eventType, "ValidatorOnChange(event); "); if (Page_TextTypes.test(control.type)) { ValidatorHookupEvent(control, "onkeypress", "event = event || window.event; if (!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } "); } } control.Validators[control.Validators.length] = val; } } function ValidatorHookupEvent(control, eventType, functionPrefix) { var ev = control[eventType]; if (typeof(ev) == "function") { ev = ev.toString(); ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); } else { ev = ""; } control[eventType] = new Function("event", functionPrefix + " " + ev); } function ValidatorGetValue(id) { var control; control = document.getElementById(id); if (typeof(control.value) == "string") { return control.value; } return ValidatorGetValueRecursive(control); } function ValidatorGetValueRecursive(control) { if (typeof(control.value) == "string" && (control.type != "radio" || control.checked == true)) { return control.value; } var i, val; for (i = 0; i<control.childNodes.length; i++) { val = ValidatorGetValueRecursive(control.childNodes[i]); if (val != "") return val; } return ""; } function Page_ClientValidate(validationGroup) { Page_InvalidControlToBeFocused = null; if (typeof(Page_Validators) == "undefined") { return true; } var i; for (i = 0; i < Page_Validators.length; i++) { ValidatorValidate(Page_Validators[i], validationGroup, null); } ValidatorUpdateIsValid(); ValidationSummaryOnSubmit(validationGroup); Page_BlockSubmit = !Page_IsValid; return Page_IsValid; } function ValidatorCommonOnSubmit() { Page_InvalidControlToBeFocused = null; var result = !Page_BlockSubmit; if ((typeof(window.event) != "undefined") && (window.event != null)) { window.event.returnValue = result; } Page_BlockSubmit = false; return result; } function ValidatorEnable(val, enable) { val.enabled = (enable != false); ValidatorValidate(val); ValidatorUpdateIsValid(); } function ValidatorOnChange(event) { event = event || window.event; Page_InvalidControlToBeFocused = null; var targetedControl; if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { targetedControl = event.srcElement; } else { targetedControl = event.target; } var vals; if (typeof(targetedControl.Validators) != "undefined") { vals = targetedControl.Validators; } else { if (targetedControl.tagName.toLowerCase() == "label") { targetedControl = document.getElementById(targetedControl.htmlFor); vals = targetedControl.Validators; } } if (vals) { for (var i = 0; i < vals.length; i++) { ValidatorValidate(vals[i], null, event); } } ValidatorUpdateIsValid(); } function ValidatedTextBoxOnKeyPress(event) { event = event || window.event; if (event.keyCode == 13) { ValidatorOnChange(event); var vals; if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { vals = event.srcElement.Validators; } else { vals = event.target.Validators; } return AllValidatorsValid(vals); } return true; } function ValidatedControlOnBlur(event) { event = event || window.event; var control; if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { control = event.srcElement; } else { control = event.target; } if ((typeof(control) != "undefined") && (control != null) && (Page_InvalidControlToBeFocused == control)) { control.focus(); Page_InvalidControlToBeFocused = null; } } function ValidatorValidate(val, validationGroup, event) { val.isvalid = true; if ((typeof(val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) { if (typeof(val.evaluationfunction) == "function") { val.isvalid = val.evaluationfunction(val); if (!val.isvalid && Page_InvalidControlToBeFocused == null && typeof(val.focusOnError) == "string" && val.focusOnError == "t") { ValidatorSetFocus(val, event); } } } ValidatorUpdateDisplay(val); } function ValidatorSetFocus(val, event) { var ctrl; if (typeof(val.controlhookup) == "string") { var eventCtrl; if ((typeof(event) != "undefined") && (event != null)) { if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { eventCtrl = event.srcElement; } else { eventCtrl = event.target; } } if ((typeof(eventCtrl) != "undefined") && (eventCtrl != null) && (typeof(eventCtrl.id) == "string") && (eventCtrl.id == val.controlhookup)) { ctrl = eventCtrl; } } if ((typeof(ctrl) == "undefined") || (ctrl == null)) { ctrl = document.getElementById(val.controltovalidate); } if ((typeof(ctrl) != "undefined") && (ctrl != null) && (ctrl.tagName.toLowerCase() != "table" || (typeof(event) == "undefined") || (event == null)) && ((ctrl.tagName.toLowerCase() != "input") || (ctrl.type.toLowerCase() != "hidden")) && (typeof(ctrl.disabled) == "undefined" || ctrl.disabled == null || ctrl.disabled == false) && (typeof(ctrl.visible) == "undefined" || ctrl.visible == null || ctrl.visible != false) && (IsInVisibleContainer(ctrl))) { if ((ctrl.tagName.toLowerCase() == "table" && (typeof(__nonMSDOMBrowser) == "undefined" || __nonMSDOMBrowser)) || (ctrl.tagName.toLowerCase() == "span")) { var inputElements = ctrl.getElementsByTagName("input"); var lastInputElement = inputElements[inputElements.length -1]; if (lastInputElement != null) { ctrl = lastInputElement; } } if (typeof(ctrl.focus) != "undefined" && ctrl.focus != null) { ctrl.focus(); Page_InvalidControlToBeFocused = ctrl; } } } function IsInVisibleContainer(ctrl) { if (typeof(ctrl.style) != "undefined" && ( ( typeof(ctrl.style.display) != "undefined" && ctrl.style.display == "none") || ( typeof(ctrl.style.visibility) != "undefined" && ctrl.style.visibility == "hidden") ) ) { return false; } else if (typeof(ctrl.parentNode) != "undefined" && ctrl.parentNode != null && ctrl.parentNode != ctrl) { return IsInVisibleContainer(ctrl.parentNode); } return true; } function IsValidationGroupMatch(control, validationGroup) { if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) { return true; } var controlGroup = ""; if (typeof(control.validationGroup) == "string") { controlGroup = control.validationGroup; } return (controlGroup == validationGroup); } function ValidatorOnLoad() { if (typeof(Page_Validators) == "undefined") return; var i, val; for (i = 0; i < Page_Validators.length; i++) { val = Page_Validators[i]; if (typeof(val.evaluationfunction) == "string") { eval("val.evaluationfunction = " + val.evaluationfunction + ";"); } if (typeof(val.isvalid) == "string") { if (val.isvalid == "False") { val.isvalid = false; Page_IsValid = false; } else { val.isvalid = true; } } else { val.isvalid = true; } if (typeof(val.enabled) == "string") { val.enabled = (val.enabled != "False"); } if (typeof(val.controltovalidate) == "string") { ValidatorHookupControlID(val.controltovalidate, val); } if (typeof(val.controlhookup) == "string") { ValidatorHookupControlID(val.controlhookup, val); } } Page_ValidationActive = true; } function ValidatorConvert(op, dataType, val) { function GetFullYear(year) { var twoDigitCutoffYear = val.cutoffyear % 100; var cutoffYearCentury = val.cutoffyear - twoDigitCutoffYear; return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + year) : (cutoffYearCentury + year)); } var num, cleanInput, m, exp; if (dataType == "Integer") { exp = /^\s*[-\+]?\d+\s*$/; if (op.match(exp) == null) return null; num = parseInt(op, 10); return (isNaN(num) ? null : num); } else if(dataType == "Double") { exp = new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + "?(\\d*)\\s*$"); m = op.match(exp); if (m == null) return null; if (m[2].length == 0 && m[3].length == 0) return null; cleanInput = (m[1] != null ? m[1] : "") + (m[2].length>0 ? m[2] : "0") + (m[3].length>0 ? "." + m[3] : ""); num = parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType == "Currency") { var hasDigits = (val.digits > 0); var beginGroupSize, subsequentGroupSize; var groupSizeNum = parseInt(val.groupsize, 10); if (!isNaN(groupSizeNum) && groupSizeNum > 0) { beginGroupSize = "{1," + groupSizeNum + "}"; subsequentGroupSize = "{" + groupSizeNum + "}"; } else { beginGroupSize = subsequentGroupSize = "+"; } exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)" + (hasDigits ? "\\" + val.decimalchar + "?(\\d{0," + val.digits + "})" : "") + "\\s*$"); m = op.match(exp); if (m == null) return null; if (m[2].length == 0 && hasDigits && m[5].length == 0) return null; cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : ""); num = parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType == "Date") { var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$"); m = op.match(yearFirstExp); var day, month, year; if (m != null && (((typeof(m[2]) != "undefined") && (m[2].length == 4)) || val.dateorder == "ymd")) { day = m[6]; month = m[5]; year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); } else { if (val.dateorder == "ymd"){ return null; } var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$"); m = op.match(yearLastExp); if (m == null) { return null; } if (val.dateorder == "mdy") { day = m[3]; month = m[1]; } else { day = m[1]; month = m[3]; } year = ((typeof(m[5]) != "undefined") && (m[5].length == 4)) ? m[5] : GetFullYear(parseInt(m[6], 10)); } month -= 1; var date = new Date(year, month, day); if (year < 100) { date.setFullYear(year); } return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null; } else { return op.toString(); } } function ValidatorCompare(operand1, operand2, operator, val) { var dataType = val.type; var op1, op2; if ((op1 = ValidatorConvert(operand1, dataType, val)) == null) return false; if (operator == "DataTypeCheck") return true; if ((op2 = ValidatorConvert(operand2, dataType, val)) == null) return true; switch (operator) { case "NotEqual": return (op1 != op2); case "GreaterThan": return (op1 > op2); case "GreaterThanEqual": return (op1 >= op2); case "LessThan": return (op1 < op2); case "LessThanEqual": return (op1 <= op2); default: return (op1 == op2); } } function CompareValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; var compareTo = ""; if ((typeof(val.controltocompare) != "string") || (typeof(document.getElementById(val.controltocompare)) == "undefined") || (null == document.getElementById(val.controltocompare))) { if (typeof(val.valuetocompare) == "string") { compareTo = val.valuetocompare; } } else { compareTo = ValidatorGetValue(val.controltocompare); } var operator = "Equal"; if (typeof(val.operator) == "string") { operator = val.operator; } return ValidatorCompare(value, compareTo, operator, val); } function CustomValidatorEvaluateIsValid(val) { var value = ""; if (typeof(val.controltovalidate) == "string") { value = ValidatorGetValue(val.controltovalidate); if ((ValidatorTrim(value).length == 0) && ((typeof(val.validateemptytext) != "string") || (val.validateemptytext != "true"))) { return true; } } var args = { Value:value, IsValid:true }; if (typeof(val.clientvalidationfunction) == "string") { eval(val.clientvalidationfunction + "(val, args) ;"); } return args.IsValid; } function RegularExpressionValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; var rx = new RegExp(val.validationexpression); var matches = rx.exec(value); return (matches != null && value == matches[0]); } function ValidatorTrim(s) { var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); return (m == null) ? "" : m[1]; } function RequiredFieldValidatorEvaluateIsValid(val) { return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue)) } function RangeValidatorEvaluateIsValid(val) { var value = ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length == 0) return true; return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) && ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val)); } function ValidationSummaryOnSubmit(validationGroup) { if (typeof(Page_ValidationSummaries) == "undefined") return; var summary, sums, s; var headerSep, first, pre, post, end; for (sums = 0; sums < Page_ValidationSummaries.length; sums++) { summary = Page_ValidationSummaries[sums]; if (!summary) continue; summary.style.display = "none"; if (!Page_IsValid && IsValidationGroupMatch(summary, validationGroup)) { var i; if (summary.showsummary != "False") { summary.style.display = ""; if (typeof(summary.displaymode) != "string") { summary.displaymode = "BulletList"; } switch (summary.displaymode) { case "List": headerSep = "<br>"; first = ""; pre = ""; post = "<br>"; end = ""; break; case "BulletList": default: headerSep = ""; first = "<ul>"; pre = "<li>"; post = "</li>"; end = "</ul>"; break; case "SingleParagraph": headerSep = " "; first = ""; pre = ""; post = " "; end = "<br>"; break; } s = ""; if (typeof(summary.headertext) == "string") { s += summary.headertext + headerSep; } s += first; for (i=0; i<Page_Validators.length; i++) { if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { s += pre + Page_Validators[i].errormessage + post; } } s += end; summary.innerHTML = s; window.scrollTo(0,0); } if (summary.showmessagebox == "True") { s = ""; if (typeof(summary.headertext) == "string") { s += summary.headertext + "\r\n"; } var lastValIndex = Page_Validators.length - 1; for (i=0; i<=lastValIndex; i++) { if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { switch (summary.displaymode) { case "List": s += Page_Validators[i].errormessage; if (i < lastValIndex) { s += "\r\n"; } break; case "BulletList": default: s += "- " + Page_Validators[i].errormessage; if (i < lastValIndex) { s += "\r\n"; } break; case "SingleParagraph": s += Page_Validators[i].errormessage + " "; break; } } } alert(s); } } } } if (window.jQuery) { (function ($) { var dataValidationAttribute = "data-val", dataValidationSummaryAttribute = "data-valsummary", normalizedAttributes = { validationgroup: "validationGroup", focusonerror: "focusOnError" }; function getAttributesWithPrefix(element, prefix) { var i, attribute, list = {}, attributes = element.attributes, length = attributes.length, prefixLength = prefix.length; prefix = prefix.toLowerCase(); for (i = 0; i < length; i++) { attribute = attributes[i]; if (attribute.specified && attribute.name.substr(0, prefixLength).toLowerCase() === prefix) { list[attribute.name.substr(prefixLength)] = attribute.value; } } return list; } function normalizeKey(key) { key = key.toLowerCase(); return normalizedAttributes[key] === undefined ? key : normalizedAttributes[key]; } function addValidationExpando(element) { var attributes = getAttributesWithPrefix(element, dataValidationAttribute + "-"); $.each(attributes, function (key, value) { element[normalizeKey(key)] = value; }); } function dispose(element) { var index = $.inArray(element, Page_Validators); if (index >= 0) { Page_Validators.splice(index, 1); } } function addNormalizedAttribute(name, normalizedName) { normalizedAttributes[name.toLowerCase()] = normalizedName; } function parseSpecificAttribute(selector, attribute, validatorsArray) { return $(selector).find("[" + attribute + "='true']").each(function (index, element) { addValidationExpando(element); element.dispose = function () { dispose(element); element.dispose = null; }; if ($.inArray(element, validatorsArray) === -1) { validatorsArray.push(element); } }).length; } function parse(selector) { var length = parseSpecificAttribute(selector, dataValidationAttribute, Page_Validators); length += parseSpecificAttribute(selector, dataValidationSummaryAttribute, Page_ValidationSummaries); return length; } function loadValidators() { if (typeof (ValidatorOnLoad) === "function") { ValidatorOnLoad(); } if (typeof (ValidatorOnSubmit) === "undefined") { window.ValidatorOnSubmit = function () { return Page_ValidationActive ? ValidatorCommonOnSubmit() : true; }; } } function registerUpdatePanel() { if (window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) { var prm = Sys.WebForms.PageRequestManager.getInstance(), postBackElement, endRequestHandler; if (prm.get_isInAsyncPostBack()) { endRequestHandler = function (sender, args) { if (parse(document)) { loadValidators(); } prm.remove_endRequest(endRequestHandler); endRequestHandler = null; }; prm.add_endRequest(endRequestHandler); } prm.add_beginRequest(function (sender, args) { postBackElement = args.get_postBackElement(); }); prm.add_pageLoaded(function (sender, args) { var i, panels, valFound = 0; if (typeof (postBackElement) === "undefined") { return; } panels = args.get_panelsUpdated(); for (i = 0; i < panels.length; i++) { valFound += parse(panels[i]); } panels = args.get_panelsCreated(); for (i = 0; i < panels.length; i++) { valFound += parse(panels[i]); } if (valFound) { loadValidators(); } }); } } $(function () { if (typeof (Page_Validators) === "undefined") { window.Page_Validators = []; } if (typeof (Page_ValidationSummaries) === "undefined") { window.Page_ValidationSummaries = []; } if (typeof (Page_ValidationActive) === "undefined") { window.Page_ValidationActive = false; } $.WebFormValidator = { addNormalizedAttribute: addNormalizedAttribute, parse: parse }; if (parse(document)) { loadValidators(); } registerUpdatePanel(); }); } (jQuery)); }