﻿function CheckLength(sender, args) {
    if (args.Value != null) {
        args.IsValid = args.Value.length <= 400;
    }
    else {
        args.IsValid = true;
    }
}

function CheckTeleDigit(sender, args) {
    if (args.Value != null) {
        args.IsValid = isdigit(args.Value);
    }
    else {
        args.IsValid = false;
    }
}

function CheckEmailValid(sender, args) {
    if (args.Value != null) {
        args.IsValid = isEmail(args.Value);
    }
    else {
        args.IsValid = false;
    }
}

function isdigit(s) {
    s = s.toString();
    for (var i = 0; i < s.length; i++) {
        var digit = s.charAt(i);
        if (digit < "0" || digit > "9")
            return false;
    }
    return true;
}

function isEmail(email) {
    // valid format "a@b.cd"
    invalidChars = " /;,:{}[]|*%$#!()`<>?";
    if (email == "") {
        return false;
    }
    for (i = 0; i < invalidChars.length; i++) {
        badChar = invalidChars.charAt(i)
        if (email.indexOf(badChar, 0) > -1) {
            return false;
        }
    }
    atPos = email.indexOf("@", 1)
    // there must be one "@" symbol
    if (atPos == -1) {
        return false;
    }

    if (email.indexOf("@", atPos + 1) != -1) {
        // and only one "@" symbol
        return false;
    }

    periodPos = email.indexOf(".", atPos)
    if (periodPos == -1) {
        // and at least one "." after the "@"
        return false;
    }

    if (atPos + 2 > periodPos)
    // and at least one character between "@" and "."
    {
        return false;
    }

    if (periodPos + 3 > email.length) {
        return false;
    }
    return true;
}