if (!window.ccs) { window.ccs = {}; } if (!ccs.validation) { ccs.validation = {}; } ccs.Validation = function() { var self; function constructorFn() { self = this; } constructorFn.prototype.isPhoneNumber = function(input) { var ValidChars = "0123456789.-() "; var IsNumber = true; var Char; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } constructorFn.prototype.isNumeric = function(input) { var ValidChars = ".0123456789"; var IsNumber = true; var Char; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } constructorFn.prototype.containsNumbers = function(input) { var numbers = "0123456789"; var hasNumber = false; var Char; for (i = 0; i < input.length && !hasNumber; i++) { Char = input.charAt(i); if (numbers.indexOf(Char) != -1) { hasNumber = true; } } return hasNumber; } constructorFn.prototype.isInteger = function(input) { var ValidChars = "0123456789"; var IsNumber = true; var Char; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } constructorFn.prototype.testValidChars = function(input, ValidChars) { var IsValid = true; var Char; for (i = 0; i < input.length && IsValid == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsValid = false; } } return IsValid; } constructorFn.prototype.isPhoneNumber_old = function(input) { //Should not be used any more. var ValidChars = "+0123456789"; var IsNumber = true; var Char; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } constructorFn.prototype.isSACellPhoneNumber = function(phoneNumber) { var prefixs = new Array("071", "072", "073", "074", "076", "078", "079", "081", "082", "083", "084"); if (phoneNumber != null) { var input = phoneNumber.replace(/\s/g, "");//remove wait spaces var isValid = (((input - 0) == input) && (input.length == 10)); if (isValid == true) { for (var i = 0; i < prefixs.length; i++) { if (input.startsWith(prefixs[i])) { return true; } } } } return false; } constructorFn.prototype.isCCSPhoneNumber = function(elm) { elm.value = elm.value.replace(/ /g,"").replace(/-/g,"").replace(/\(/g,"").replace(/\)/g,""); var input = elm.value; var ValidChars = "0123456789"; var IsNumber = true; var Char; if (input.length != 10) IsNumber = false; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } /* constructorFn.prototype.isIDNumber = function(input) { var ValidChars = "0123456789"; var IsNumber = true; var Char; if (input.length < 10) IsNumber = false; for (i = 0; i < input.length && IsNumber == true; i++) { Char = input.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } if (isNumber && input.length == 13) { return true; } else { return false; } } */ constructorFn.prototype.trim = function(str) { var str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); } constructorFn.prototype.isAlphabet = function(text) { var alphaExp = /^[a-zA-Z-]+$/; if(text.replace(/\s/g, "").match(alphaExp)){ return true; }else{ return false; } } constructorFn.prototype.validateTextBox = function(text, maxRows, maxCharInARow) { if (text == null) { return false; } var trimmed = self.trim(text); var aNewlines = trimmed.split("\n"); if (aNewlines.length > maxRows) { return false; } for (i = 0; i < aNewlines.length; i++) { if (aNewlines[i].length > maxCharInARow) { return false; } } return true; } /* NB: The month starts at 0, so you may need to subtract 1 from the month you're passing through. */ constructorFn.prototype.validateDatePassed = function(year, month, day) { var tempDate = new Date(year, month, day); var currentDate = new Date(); if (tempDate.getTime() > currentDate.getTime()) { return false; } return true; } /* This is for the calendar popup only - It will get a string in the format '31-03-2011' */ constructorFn.prototype.isDateInFuture = function(popupDate) { var parts = popupDate.split("-"); var year = parts[2]; var month = parts[1]; var day = parts[0]; return !self.validateDatePassed(year, month*1-1, day); } constructorFn.prototype.validateDate = function(year, month, day) { if ((year+"").length == 0 || (month+"").length == 0 || (day+"").length == 0 ) { return false; } else { var tempDate = new Date(year, month, day); if (tempDate.getDate() != (day*1)) { return false; } } return true; } constructorFn.prototype.validateSAIDnumber = function(idnumber) { //1. numeric and 13 digits if (isNaN(idnumber) || (idnumber.length != 13)) { return false; } //2. first 6 numbers is a valid date var tempDate = new Date(idnumber.substring(0, 2), idnumber.substring(2, 4) - 1, idnumber.substring(4, 6)); if (!((tempDate.getYear() == idnumber.substring(0, 2)) && (tempDate.getMonth() == idnumber.substring(2, 4) - 1) && (tempDate.getDate() == idnumber.substring(4, 6)))) { return false; } //3. luhn formula var tempTotal = 0; var checkSum = 0; var multiplier = 1; for (var i = 0; i < 13; ++i) { tempTotal = parseInt(idnumber.charAt(i)) * multiplier; if (tempTotal > 9) { tempTotal = parseInt(tempTotal.toString().charAt(0)) + parseInt(tempTotal.toString().charAt(1)); } checkSum = checkSum + tempTotal; multiplier = (multiplier % 2 == 0) ? 1 : 2; } if ((checkSum % 10) == 0) { return true } ; return false; } constructorFn.prototype.isEmail = function(input) { var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i if (input.length < 60 && filter.test(input)) return true; else { return false; } } constructorFn.prototype.isCheckBoxTicked = function(input) { if (input.checked) { return true; } else { return false; } } constructorFn.prototype.isNotBlank = function(input) { input = input.replace(/ /g, ""); if (input == "") { return false; } else { return true; } } constructorFn.prototype.exceedsOccurenceLimit = function(input, substring, limit) { var items = input.split(substring); if (items.length - 1 <= limit) { return false; } else { return true; } } constructorFn.prototype.occursAtExtremes = function(input, character) { if (input.charAt(0) == character || input.charAt(input.length - 1) == character) { return true; } else { return false; } } constructorFn.prototype.limitText = function(limitField, limitCount, limitNum) { if (limitField.value.length > limitNum) { limitField.value = limitField.value.substring(0, limitNum); } else { if (limitCount != null) { limitCount.value = limitNum - limitField.value.length; } } } return new constructorFn(); } ccs.validation = new ccs.Validation();