﻿// JScript File

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
 this.eventTarget = eventTarget;
 this.eventArgument = eventArgument;
 this.validation = validation;
 this.validationGroup = validationGroup;
 this.actionUrl = actionUrl;
 this.trackFocus = trackFocus;
 this.clientSubmit = clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
 var validationResult = true;
 if (options.validation) {
 if (typeof(Page_ClientValidate) == 'function') {
 validationResult = Page_ClientValidate(options.validationGroup);
 }
 }
 if (validationResult) {
 if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
 theForm.action = options.actionUrl;
 }
 if (options.trackFocus) {
 var lastFocus = theForm.elements["__LASTFOCUS"];
 if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
 if (typeof(document.activeElement) == "undefined") {
 lastFocus.value = options.eventTarget;
 }
 else {
 var active = document.activeElement;
 if ((typeof(active) != "undefined") && (active != null)) {
 if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
 lastFocus.value = active.id;
 }
 else if (typeof(active.name) != "undefined") {
 lastFocus.value = active.name;
 }
 }
 }
 }
 }
 }
 if (options.clientSubmit) {
 __doPostBack(options.eventTarget, options.eventArgument);
 }
}
var __pendingCallbacks = new Array();
var __synchronousCallBackIndex = -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
 var postData = __theFormPostData +
 "__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
 "&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
 if (theForm["__EVENTVALIDATION"]) {
 postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
 }
 var xmlRequest,e;
 try {
 xmlRequest = new XMLHttpRequest();
 }
 catch(e) {
 try {
 xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
 }
 catch(e) {
 }
 }
 var setRequestHeaderMethodExists = true;
 try {
 setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
 }
 catch(e) {}
 var callback = new Object();
 callback.eventCallback = eventCallback;
 callback.context = context;
 callback.errorCallback = errorCallback;
 callback.async = useAsync;
 var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
 if (!useAsync) {
 if (__synchronousCallBackIndex != -1) {
 __pendingCallbacks[__synchronousCallBackIndex] = null;
 }
 __synchronousCallBackIndex = callbackIndex;
 }
 if (setRequestHeaderMethodExists) {
 xmlRequest.onreadystatechange = WebForm_CallbackComplete;
 callback.xmlRequest = xmlRequest;
 xmlRequest.open("POST", theForm.action, true);
 xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlRequest.send(postData);
 return;
 }
 callback.xmlRequest = new Object();
 var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
 var xmlRequestFrame = document.frames[callbackFrameID];
 if (!xmlRequestFrame) {
 xmlRequestFrame = document.createElement("IFRAME");
 xmlRequestFrame.width = "1";
 xmlRequestFrame.height = "1";
 xmlRequestFrame.frameBorder = "0";
 xmlRequestFrame.id = callbackFrameID;
 xmlRequestFrame.name = callbackFrameID;
 xmlRequestFrame.style.position = "absolute";
 xmlRequestFrame.style.top = "-100px"
 xmlRequestFrame.style.left = "-100px";
 try {
 if (callBackFrameUrl) {
 xmlRequestFrame.src = callBackFrameUrl;
 }
 }
 catch(e) {}
 document.body.appendChild(xmlRequestFrame);
 }
 var interval = window.setInterval(function() {
 xmlRequestFrame = document.frames[callbackFrameID];
 if (xmlRequestFrame && xmlRequestFrame.document) {
 window.clearInterval(interval);
 xmlRequestFrame.document.write("");
 xmlRequestFrame.document.close();
 xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
 xmlRequestFrame.document.close();
 xmlRequestFrame.document.forms[0].action = theForm.action;
 var count = __theFormPostCollection.length;
 var element;
 for (var i = 0; i < count; i++) {
 element = __theFormPostCollection[i];
 if (element) {
 var fieldElement = xmlRequestFrame.document.createElement("INPUT");
 fieldElement.type = "hidden";
 fieldElement.name = element.name;
 fieldElement.value = element.value;
 xmlRequestFrame.document.forms[0].appendChild(fieldElement);
 }
 }
 var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
 callbackIdFieldElement.type = "hidden";
 callbackIdFieldElement.name = "__CALLBACKID";
 callbackIdFieldElement.value = eventTarget;
 xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
 var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
 callbackParamFieldElement.type = "hidden";
 callbackParamFieldElement.name = "__CALLBACKPARAM";
 callbackParamFieldElement.value = eventArgument;
 xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
 if (theForm["__EVENTVALIDATION"]) {
 var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
 callbackValidationFieldElement.type = "hidden";
 callbackValidationFieldElement.name = "__EVENTVALIDATION";
 callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
 xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
 }
 var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
 callbackIndexFieldElement.type = "hidden";
 callbackIndexFieldElement.name = "__CALLBACKINDEX";
 callbackIndexFieldElement.value = callbackIndex;
 xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
 xmlRequestFrame.document.forms[0].submit();
 }
 }, 10);
}
function WebForm_CallbackComplete() {
 for (i = 0; i < __pendingCallbacks.length; i++) {
 callbackObject = __pendingCallbacks[i];
 if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
 WebForm_ExecuteCallback(callbackObject);
 if (!__pendingCallbacks[i].async) {
 __synchronousCallBackIndex = -1;
 }
 __pendingCallbacks[i] = null;
 var callbackFrameID = "__CALLBACKFRAME" + i;
 var xmlRequestFrame = document.getElementById(callbackFrameID);
 if (xmlRequestFrame) {
 xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
 }
 }
 }
}
function WebForm_ExecuteCallback(callbackObject) {
 var response = callbackObject.xmlRequest.responseText;
 if (response.charAt(0) == "s") {
 if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
 callbackObject.eventCallback(response.substring(1), callbackObject.context);
 }
 }
 else if (response.charAt(0) == "e") {
 if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
 callbackObject.errorCallback(response.substring(1), callbackObject.context);
 }
 }
 else {
 var separatorIndex = response.indexOf("|");
 if (separatorIndex != -1) {
 var validationFieldLength = parseInt(response.substring(0, separatorIndex));
 if (!isNaN(validationFieldLength)) {
 var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
 if (validationField != "") {
 var validationFieldElement = theForm["__EVENTVALIDATION"];
 if (!validationFieldElement) {
 validationFieldElement = document.createElement("INPUT");
 validationFieldElement.type = "hidden";
 validationFieldElement.name = "__EVENTVALIDATION";
 theForm.appendChild(validationFieldElement);
 }
 validationFieldElement.value = validationField;
 }
 if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
 callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);
 }
 }
 }
 }
}
function WebForm_FillFirstAvailableSlot(array, element) {
 var i;
 for (i = 0; i < array.length; i++) {
 if (!array[i]) break;
 }
 array[i] = element;
 return i;
}
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
var __theFormPostData = "";
var __theFormPostCollection = new Array();
function WebForm_InitCallback() {
 var count = theForm.elements.length;
 var element;
 for (var i = 0; i < count; i++) {
 element = theForm.elements[i];
 var tagName = element.tagName.toLowerCase();
 if (tagName == "input") {
 var type = element.type;
 if ((type == "text" || type == "hidden" || type == "password" ||
 ((type == "checkbox" || type == "radio") && element.checked)) &&
 (element.id != "__EVENTVALIDATION")) {
 WebForm_InitCallbackAddField(element.name, element.value);
 }
 }
 else if (tagName == "select") {
 var selectCount = element.options.length;
 for (var j = 0; j < selectCount; j++) {
 var selectChild = element.options[j];
 if (selectChild.selected == true) {
 WebForm_InitCallbackAddField(element.name, element.value);
 }
 }
 }
 else if (tagName == "textarea") {
 WebForm_InitCallbackAddField(element.name, element.value);
 }
 }
}
function WebForm_InitCallbackAddField(name, value) {
 var nameValue = new Object();
 nameValue.name = name;
 nameValue.value = value;
 __theFormPostCollection[__theFormPostCollection.length] = nameValue;
 __theFormPostData += name + "=" + WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
 if (encodeURIComponent) {
 return encodeURIComponent(parameter);
 }
 else {
 return escape(parameter);
 }
}
var __disabledControlArray = new Array();
function WebForm_ReEnableControls() {
 if (typeof(__enabledControlArray) == 'undefined') {
 return false;
 }
 var disabledIndex = 0;
 for (var i = 0; i < __enabledControlArray.length; i++) {
 var c;
 if (__nonMSDOMBrowser) {
 c = document.getElementById(__enabledControlArray[i]);
 }
 else {
 c = document.all[__enabledControlArray[i]];
 }
 if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) {
 c.disabled = false;
 __disabledControlArray[disabledIndex++] = c;
 }
 }
 setTimeout("WebForm_ReDisableControls()", 0);
 return true;
}
function WebForm_ReDisableControls() {
 for (var i = 0; i < __disabledControlArray.length; i++) {
 __disabledControlArray[i].disabled = true;
 }
}
function WebForm_FireDefaultButton(event, target) {
 if (event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))) {
 var defaultButton;
 if (__nonMSDOMBrowser) {
 defaultButton = document.getElementById(target);
 }
 else {
 defaultButton = document.all[target];
 }
 if (defaultButton && typeof(defaultButton.click) != "undefined") {
 defaultButton.click();
 event.cancelBubble = true;
 if (event.stopPropagation) event.stopPropagation();
 return false;
 }
 }
 return true;
}
function WebForm_GetScrollX() {
 if (__nonMSDOMBrowser) {
 return window.pageXOffset;
 }
 else {
 if (document.documentElement && document.documentElement.scrollLeft) {
 return document.documentElement.scrollLeft;
 }
 else if (document.body) {
 return document.body.scrollLeft;
 }
 }
 return 0;
}
function WebForm_GetScrollY() {
 if (__nonMSDOMBrowser) {
 return window.pageYOffset;
 }
 else {
 if (document.documentElement && document.documentElement.scrollTop) {
 return document.documentElement.scrollTop;
 }
 else if (document.body) {
 return document.body.scrollTop;
 }
 }
 return 0;
}
function WebForm_SaveScrollPositionSubmit() {
 if (__nonMSDOMBrowser) {
 theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset;
 theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset;
 }
 else {
 theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
 theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
 }
 if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) {
 return this.oldSubmit();
 }
 return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
 theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
 theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
 if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) {
 return this.oldOnSubmit();
 }
 return true;
}
function WebForm_RestoreScrollPosition() {
 if (__nonMSDOMBrowser) {
 window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
 }
 else {
 window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
 }
 if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
 return theForm.oldOnLoad();
 }
 return true;
}
function WebForm_TextBoxKeyHandler(event) {
 if (event.keyCode == 13) {
 var target;
 if (__nonMSDOMBrowser) {
 target = event.target;
 }
 else {
 target = event.srcElement;
 }
 if ((typeof(target) != "undefined") && (target != null)) {
 if (typeof(target.onchange) != "undefined") {
 target.onchange();
 event.cancelBubble = true;
 if (event.stopPropagation) event.stopPropagation();
 return false;
 }
 }
 }
 return true;
}
function WebForm_AppendToClassName(element, className) {
 var current = element.className;
 if (current) {
 if (current.charAt(current.length - 1) != ' ') {
 current += ' ';
 }
 current += className;
 }
 else {
 current = className;
 }
 element.className = current;
}
function WebForm_RemoveClassName(element, className) {
 var current = element.className;
 if (current) {
 if (current.substring(current.length - className.length - 1, current.length) == ' ' + className) {
 element.className = current.substring(0, current.length - className.length - 1);
 return;
 }
 if (current == className) {
 element.className = "";
 return;
 }
 var index = current.indexOf(' ' + className + ' ');
 if (index != -1) {
 element.className = current.substring(0, index) + current.substring(index + className.length + 2, current.length);
 return;
 }
 if (current.substring(0, className.length) == className + ' ') {
 element.className = current.substring(className.length + 1, current.length);
 }
 }
}
function WebForm_GetElementById(elementId) {
 if (document.getElementById) {
 return document.getElementById(elementId);
 }
 else if (document.all) {
 return document.all[elementId];
 }
 else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
 var elements = WebForm_GetElementsByTagName(element, tagName);
 if (elements && elements.length > 0) {
 return elements[0];
 }
 else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
 if (element && tagName) {
 if (element.getElementsByTagName) {
 return element.getElementsByTagName(tagName);
 }
 if (element.all && element.all.tags) {
 return element.all.tags(tagName);
 }
 }
 return null;
}
function WebForm_GetElementDir(element) {
 if (element) {
 if (element.dir) {
 return element.dir;
 }
 return WebForm_GetElementDir(element.parentNode);
 }
 return "ltr";
}
function WebForm_GetElementPosition(element) {
 var result = new Object();
 result.x = 0;
 result.y = 0;
 result.width = 0;
 result.height = 0;
 if (element.offsetParent) {
 result.x = element.offsetLeft;
 result.y = element.offsetTop;
 var parent = element.offsetParent;
 while (parent) {
 result.x += parent.offsetLeft;
 result.y += parent.offsetTop;
 var parentTagName = parent.tagName.toLowerCase();
 if (parentTagName != "table" &&
 parentTagName != "body" &&
 parentTagName != "html" &&
 parentTagName != "div" &&
 parent.clientTop &&
 parent.clientLeft) {
 result.x += parent.clientLeft;
 result.y += parent.clientTop;
 }
 parent = parent.offsetParent;
 }
 }
 else if (element.left && element.top) {
 result.x = element.left;
 result.y = element.top;
 }
 else {
 if (element.x) {
 result.x = element.x;
 }
 if (element.y) {
 result.y = element.y;
 }
 }
 if (element.offsetWidth && element.offsetHeight) {
 result.width = element.offsetWidth;
 result.height = element.offsetHeight;
 }
 else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
 result.width = element.style.pixelWidth;
 result.height = element.style.pixelHeight;
 }
 return result;
}
function WebForm_GetParentByTagName(element, tagName) {
 var parent = element.parentNode;
 var upperTagName = tagName.toUpperCase();
 while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
 parent = parent.parentNode ? parent.parentNode : parent.parentElement;
 }
 return parent;
}
function WebForm_SetElementHeight(element, height) {
 if (element && element.style) {
 element.style.height = height + "px";
 }
}
function WebForm_SetElementWidth(element, width) {
 if (element && element.style) {
 element.style.width = width + "px";
 }
}
function WebForm_SetElementX(element, x) {
 if (element && element.style) {
 element.style.left = x + "px";
 }
}
function WebForm_SetElementY(element, y) {
 if (element && element.style) {
 element.style.top = y + "px";
 }
}
var Page_ValidationVer = "125";
var Page_IsValid = true;
var Page_BlockSubmit = false;
var Page_InvalidControlToBeFocused = null;
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 (control.type == "text" ||
 control.type == "password" ||
 control.type == "file") {
 ValidatorHookupEvent(control, "onkeypress",
 "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;
 eval("ev = control." + eventType + ";");
 if (typeof(ev) == "function") {
 ev = ev.toString();
 ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
 }
 else {
 ev = "";
 }
 var func;
 if (navigator.appName.toLowerCase().indexOf('explorer') > -1) {
 func = new Function(functionPrefix + " " + ev);
 }
 else {
 func = new Function("event", functionPrefix + " " + ev);
 }
 eval("control." + eventType + " = func;");
}
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) {
 if (!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;
 }
 }
 var i;
 for (i = 0; i < vals.length; i++) {
 ValidatorValidate(vals[i], null, event);
 }
 ValidatorUpdateIsValid();
}
function ValidatedTextBoxOnKeyPress(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) {
 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)) {
 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 && (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})\\2((\\d{4})|(\\d{2}))\\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 = (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;
 for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
 summary = Page_ValidationSummaries[sums];
 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);
 }
 }
 }
}


