1var foolproof = function () { }; 2foolproof.is = function (value1, operator, value2, passOnNull) { 3 if (passOnNull) { 4 var isNullish = function (input) { 5 return input == null || input == undefined || input == ""; 6 }; 7 8 var value1nullish = isNullish(value1); 9 var value2nullish = isNullish(value2); 10 11 if ((value1nullish && !value2nullish) || (value2nullish && !value1nullish)) 12 return true; 13 } 14 15 var isNumeric = function (input) { 16 return (input - 0) == input && input.length > 0; 17 }; 18 19 var isDate = function (input) { 20 var dateTest = new RegExp(/(?=\d)^(?:(?!(?:10\D(?:0?[5-9]|1[0-4])\D(?:1582))|(?:0?9\D(?:0?[3-9]|1[0-3])\D(?:1752)))((?:0?[13578]|1[02])|(?:0?[469]|11)(?!\/31)(?!-31)(?!\.31)|(?:0?2(?=.?(?:(?:29.(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|(?:0?2(?=.(?:(?:\d\D)|(?:[01]\d)|(?:2[0-8])))))([-.\/])(0?[1-9]|[12]\d|3[01])\2(?!0000)((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?!\x20BC)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/); 21 22 return dateTest.test(input); 23 }; 24 25 var isBool = function (input) { 26 return input === true || input === false || input === "true" || input === "false"; 27 }; 28 29 if (isDate(value1)) { 30 value1 = Date.parse(value1); 31 value2 = Date.parse(value2); 32 } 33 else if (isBool(value1)) { 34 if (value1 == "false") value1 = false; 35 if (value2 == "false") value2 = false; 36 value1 = !!value1; 37 value2 = !!value2; 38 } 39 else if (isNumeric(value1)) { 40 value1 = parseFloat(value1); 41 value2 = parseFloat(value2); 42 } 43 44 switch (operator) { 45 case "EqualTo": if (value1 == value2) return true; break; 46 case "NotEqualTo": if (value1 != value2) return true; break; 47 case "GreaterThan": if (value1 > value2) return true; break; 48 case "LessThan": if (value1 < value2) return true; break; 49 case "GreaterThanOrEqualTo": if (value1 >= value2) return true; break; 50 case "LessThanOrEqualTo": if (value1 <= value2) return true; break; 51 case "RegExMatch": return (new RegExp(value2)).test(value1); break; 52 case "NotRegExMatch": return !(new RegExp(value2)).test(value1); break; 53 } 54 55 return false; 56}; 57 58foolproof.getId = function (element, dependentPropety) { 59 var pos = element.id.lastIndexOf("_") + 1; 60 return element.id.substr(0, pos) + dependentPropety.replace(/\./g, "_"); 61};
62 63foolproof.getName = function (element, dependentPropety) { 64 var pos = element.name.lastIndexOf(".") + 1; 65 return element.name.substr(0, pos) + dependentPropety; 66}; 67 68function __MVC_ApplyValidator_RequiredIf() { 69} 70 71__MVC_ApplyValidator_Unknown = function (rules, type, params) { 72 rules[type] = params; 73}; 74 75jQuery.validator.addMethod("is", function (value, element, params) { 76 var dependentProperty = foolproof.getId(element, params["dependentproperty"]); 77 var operator = params["operator"]; 78 var passOnNull = params["passonnull"]; 79 var dependentValue = document.getElementById(dependentProperty).value; 80 81 if (foolproof.is(value, operator, dependentValue, passOnNull)) 82 return true; 83 84 return false; 85}); 86 87jQuery.validator.addMethod("requiredif", function (value, element, params) { 88 var dependentProperty = foolproof.getName(element, params["dependentproperty"]); 89 var dependentTestValue = params["dependentvalue"]; 90 var operator = params["operator"]; 91 var pattern = params["pattern"]; 92 var dependentPropertyElement = document.getElementsByName(dependentProperty); 93 var dependentValue = null; 94 95 if (dependentPropertyElement.length > 1) { 96 for (var index = 0; index != dependentPropertyElement.length; index++) 97 if (dependentPropertyElement[index]["checked"]) { 98 dependentValue = dependentPropertyElement[index].value; 99 break; 100 } 101 102 if (dependentValue == null) 103 dependentValue = false 104 } 105 else 106 dependentValue = dependentPropertyElement[0].value; 107 108 if (foolproof.is(dependentValue, operator, dependentTestValue)) { 109 if (pattern == null) { 110 if (value != null && value.toString().replace(/^\s\s*/, '').replace(/\s\s*$/, '') != "") 111 return true; 112 } 113 else 114 return (new RegExp(pattern)).test(value); 115 } 116 else 117 return true; 118 119 return false; 120}); 121 122jQuery.validator.addMethod("requiredifempty", function (value, element, params) { 123 var dependentProperty = foolproof.getId(element, params["dependentproperty"]); 124 var dependentValue = document.getElementById(dependentProperty).value; 125 126 if (dependentValue == null || dependentValue.toString().replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "") { 127 if (value != null && value.toString().replace(/^\s\s*/, '').replace(/\s\s*$/, '') != "") 128 return true; 129 } 130 else 131 return true; 132 133 return false; 134}); 135 136jQuery.validator.addMethod("requiredifnotempty", function (value, element, params) { 137 var dependentProperty = foolproof.getId(element, params["dependentproperty"]); 138 var dependentValue = document.getElementById(dependentProperty).value; 139 140 if (dependentValue != null && dependentValue.toString().replace(/^\s\s*/, '').replace(/\s\s*$/, '') != "") { 141 if (value != null && value.toString().replace(/^\s\s*/, '').replace(/\s\s*$/, '') != "") 142 return true; 143 } 144 else 145 return true; 146 147 return false; 148});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.