text: 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() {//alert(Sys.WebForms );
              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));
  }