﻿function ValidationClass(){
    this.validateUser = function validateUser(val){
        var rex = "^[\\w\\d]{3,50}$";
        return this.validateWithRegExp(val, rex);
    }

    this.validatePassword = function validatePassword(val){
        var rex = "^.{6,50}$";
        return this.validateWithRegExp(val, rex);
    }

    this.validateFullName = function validateFullName(val){
        var rex = "^[A-Za-z]{1,50}( @)?( [A-Za-z]{1,50})*$";
        return this.validateWithRegExp(val, rex);
    }
    
    this.validateMSiaIC = function validateMSiaIC(val){
        var rex = "^\\d{12}$";
        try {
            //var yy = parseFloat(val.substring(0, 2));
            var mm = parseFloat(val.substring(2, 4));
            var dd = parseFloat(val.substring(4, 6));
            var st = parseFloat(val.substring(6, 8));
            if (mm <= 0 || mm > 12) return false;
            if (dd <= 0 || dd > (30 + day_ex[mm-1])) return false;
            if (!((st > 0 && st <= 15) || st == 35 || (st >=60 && st <=85))) return false;
        }catch (ex){
        }

        return this.validateWithRegExp(val, rex);
    }

    this.validateIntPassport = function validateIntPassport(val){
        //var rex = "^[A-Z0-9<]{9}[0-9]{1}[A-Z]{3}[0-9]{7}[A-Z]{1}[0-9]{7}[A-Z0-9<]{14}[0-9]{2}$";
        var rex = "^[A-Z]{1}\\d{8}$";
        return this.validateWithRegExp(val, rex);
    }

    this.validatePostcode = function validatePostcode(val){
        var rex = "^\\d{5}$";
        return this.validateWithRegExp(val, rex);
    }

    this.validateBankAccNumber = function validateBankAccNumber(val){
        var rex = "^\\d{7,16}$";
        return this.validateWithRegExp(val, rex);
    }
    
    this.validateIndex = function validateIndex(val){
        var rex = "^\\d$";
        return this.validateWithRegExp(val, rex);
    }

    this.validateEmail = function validateEmail(val){
        var rex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
        return this.validateWithRegExp(val, rex);
    }

    this.validatePhone = function validatePhone(val){
        var rex = "^(\\+\\d{1,3}\\-)?\\d{1,4}(\\-)?\\d{7,10}$";
        return this.validateWithRegExp(val, rex);
    }

    this.validateWithRegExp = function validateWithRegExp(val, rex){return (val.search(rex) == 0);}
}

var valObj = new ValidationClass();
