You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							683 lines
						
					
					
						
							26 KiB
						
					
					
				
			
		
		
	
	
							683 lines
						
					
					
						
							26 KiB
						
					
					
				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));
 | 
						|
} |