/*****************************************************************************************************
'Nome........: email.js
'Descricao...: Contém função em JavaScript para validar e-mail.
'
'Contém......: ChecaEmail - Verifica se o E-mail é válido;
******************************************************************************************************/

/*
 * Nome:         ChecaEmail
 * Autor:        7COMm/Fábrica de softwares - Waldyr De Paiva
 * Data:         18/05/2001
 * Descrição:    Verifica se o E-mail é válido
 * Entrada:      strEmail - String de E-mail
 * Saída:        true(ok) ou false(nok)
 * Funções Uti.: VerificaString()
 * Autor:        7COMm/Fábrica de softwares - Juliana Ferris
 * Data:         04/01/2002
 * Descrição:    Revisão de Padrões e Testes
 * Autor:        7COMm/Fábrica de softwares - Thiago Rosa
 * Data:         04/06/2002
 * Descrição:    Checar se depois de '@' tem um '.'; 
 *               Checar se contém somente os caracteres válidos para endereço
 *                       eletrônico(e-mail);
 *               Testes.
 * Autor:        7COMm/Fábrica de softwares - Renato C. Castelo
 * Data:         13/11/2002
 * Descrição:    Adequação ao novo padrão e testes.
 */
function ChecaEmail(strEmail) {
    var strAux;

    // checando se a string não é vazia
    if ((strEmail.replace(/^\s+/,'').replace (/\s+$/,'') == "")) {
        return false;
    }

    // checando se existe pelo menos uma arroba e pelo menos algum ponto
    if ((strEmail.indexOf("@") == -1)||(strEmail.indexOf(".") == -1)) {
        return false;
    }

    // checando se a string tem pelo menos 5 caracteres
    if (strEmail.length<5) {
        return false;
    }

    // checando se existe brancos 
    if (strEmail.indexOf(" ") != -1) {
        return false;
    }

    // checando se 1ª posição, depois de ., não tem outra @ ou um ponto ou
    // espaço
    if ((strEmail.substr(strEmail.lastIndexOf(".")+1,1) == "") 
            || (strEmail.substr(strEmail.indexOf(".")+1,1) == "@")
            || (strEmail.substr(strEmail.indexOf(".")+1,1) == ".")) {
        return false;
    }

    // checando se 1ª posição, depois de @, não tem outra @ ou um ponto ou
    // espaço
    if ((strEmail.substr(strEmail.lastIndexOf("@")+1,1) == "")
            || (strEmail.substr(strEmail.indexOf("@")+1,1) == "@")
            || (strEmail.substr(strEmail.indexOf("@")+1,1) == ".")) {
        return false;
    }
    
    // checando se depois de @, tem um ponto
    if (strEmail.substr(strEmail.indexOf("@")+1).indexOf(".") == -1) {
        return false;
    }

    // procurando por mais de uma @
    strAux = strEmail.substr(strEmail.indexOf("@")+1);
    if (strAux.indexOf("@") != -1) {
        return false;
    }

    // checando se o primeiro caracter é @
    if (strEmail.substr(0, 1) == "@") {
        return false;
    }
    
    // checando se contém somente os caracteres válidos para endereço
    // eletrônico(e-mail)
    if (!VerificaString(strEmail, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@_\.\-",
            "VAL", "i")) {
        return false;
    }

    return true;
}
