+ if (!HaveRegexp ())
+ return null;
+
+ var hasDigits = (validator.digits > 0);
+ var beginGroupSize, subsequentGroupSize;
+ var groupSizeNum = parseInt(validator.groupsize, 10);
+ if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
+ beginGroupSize = "{1," + groupSizeNum + "}";
+ subsequentGroupSize = "{" + groupSizeNum + "}";
+ } else {
+ beginGroupSize = subsequentGroupSize = "+";
+ }
+ var exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + validator.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
+ + (hasDigits ? "\\" + validator.decimalchar + "?(\\d{0," + validator.digits + "})" : "")
+ + "\\s*$");
+ var m = s.match(exp);
+ if (m == null)
+ return null;
+ if (m[2].length == 0 && hasDigits && m[5].length == 0)
+ return null;
+ var cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + validator.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : "");
+ var num = parseFloat(cleanInput);
+ return (isNaN(num) ? null : num);
+}
+
+function GetFullYear(year, maxYear)
+{
+ var twoDigitMaxYear = maxYear % 100;
+ var centure = maxYear - twoDigitMaxYear;
+ return ((year > twoDigitMaxYear) ? (centure - 100 + year) : (centure + year));