var flags = new Object();

function setFocus(element)
{
    setTimeout(function()
    {
        element.focus()
    }, 0);
}

function hasNotAllowedChars(str)
{
    var allowed = "-+@._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    var allowedLen = allowed.length;
    var strLen = str.length;
    var flag = false;
    for (i = 0; i < strLen; i++) {
        flag = true;
        for (j = 0; j < allowedLen; j++) {
            if (str.charAt(i) == allowed.charAt(j)) {
                flag = false;
                break;
            }
        }
        if (flag) {
            return true;
        }
    }
    return flag;
}

function validDekohID(dekohId)
{
    var strLen = dekohId.length;
    if (strLen < 4) {
        flags.idLengthFlag = false;
        return false;
    } else {
        flags.idLengthFlag = true;
    }

    var charOne = dekohId.charAt(0);
    if (!(('a' <= charOne && charOne <= 'z') || ('A' <= charOne && charOne <= 'Z'))) {
        flags.startWithAlpha = false;
        return false;
    } else {
        flags.startWithAlpha = true;
    }

    for (i = 1; i < strLen; i++) {
        var curchar = dekohId.charAt(i);
        if (!(('a' <= curchar && curchar <= 'z') || ('A' <= curchar && curchar <= 'Z') ||
              ('0' <= curchar && curchar <= '9' ))) {
            flags.idFlag = false;
            return false;
        }
    }
    flags.idFlag = true;
    return true;
}

function isValidEmail(str)
{
    if (hasNotAllowedChars(str)) {
        return false;
    }
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)

    if (lat == -1 || lat == 0 || lat == lstr) {
        return false
    }
    if (ldot == -1 || ldot == 0 || ldot == lstr) {
        return false
    }
    if (str.indexOf(at, (lat + 1)) != -1) {
        return false
    }
    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false
    }
    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false
    }
    if (str.indexOf(" ") != -1) {
        return false
    }

    return true
}