/*
Interface das funcoes "i_javascriptemail.js"

checkEmail(ObjEmail)
checkEmail_2(EmailText)
emailValidate(txtEmail, msgErro)
*/

/*
Documentaçao Modelo

//====================================================================================
//[Nome Funcao]
//====================================================================================

Function [nome]
    Descricao
        [descricao do objeto]
    Parametros
        [nome do parametro]
            [descricao do parametro]
    returns
        [tipo boolean, int, date, string, object, function, event, variant (qualquer tipo basico)]
    Depends
        [nome das funcoes que a funcao depende]
    observacao
        [pequeno detalhe da funcao]
*/


//====================================================================================
//checkEmail
//====================================================================================

/*
Function checkEmail
    Descricao
        valida um email
    Parametros
        ObjEmail
            qualquer objeto que contenha metodos value, focus
    returns
        boolean
    Depends
    observacao
        envia alerts para a tela
*/
function checkEmail(ObjEmail)
  {
    EmailText = ObjEmail.value

    if ((EmailText.search(/;/i) == -1) &&
        (EmailText.search(/,/i) == -1) &&
        (EmailText.indexOf("..") == -1) &&
        (EmailText.indexOf(".@") == -1) &&
        (EmailText.indexOf("@.") == -1) &&
        (EmailText.search(/"/i) == -1) &&
        (EmailText.search(/'/i) == -1) &&
        (EmailText.indexOf("^") == -1) &&
        (EmailText.search(/`/i) == -1) &&
        (EmailText.search(/~/i) == -1) &&
        (EmailText.search(/ç/i) == -1) &&
        (EmailText.indexOf("#") == -1) &&
        (EmailText.indexOf("%") == -1) &&
        (EmailText.indexOf("+") == -1) &&
        (EmailText.indexOf("*") == -1) &&
        (EmailText.indexOf("@@") == -1) &&
        (EmailText.indexOf("/") == -1) &&
        (EmailText.indexOf("\\") == -1) &&
        (EmailText.indexOf(".") > -1) && //Tem que ter pelo menos 1 ponto
        (EmailText.length > 4) &&
        (EmailText.search(/@/i) >= 1) &&
        (EmailText.substr(0,1) != ".") && // Não pode começar com ponto
        (EmailText.substr(EmailText.length-1) != ".") && // Não pode terminar com ponto
        (EmailText.indexOf("@") != -1) &&
        (EmailText.indexOf(".combr") == -1))
                 {
                         if (EmailText.indexOf("hotmail.com.br") >= 0)
                                {
                               alert("Atenção: O E-mail HOTMAIL não termina com .BR\nEle será automaticamente corrigido");
                               ObjEmail.value = EmailText.replace("hotmail.com.br", "hotmail.com");
                               }
                           else if (EmailText.indexOf("aol.com.br") >= 0)
                               {
                               alert("Atenção: O E-mail AOL não termina com .BR\nEle será automaticamente corrigido");
                               ObjEmail.value = EmailText.replace("aol.com.br", "aol.com");
                               }
                           else if (EmailText.indexOf(" ") >= 0)
                               {
                               alert("Atenção: O E-mail não deve conter espaços em branco\nEle será automaticamente corrigido");
                               while(EmailText.indexOf(" ") >= 0)
                                      EmailText = EmailText.replace(" ", "");
                               ObjEmail.value = EmailText
                               }
                           else if (EmailText.indexOf(".combr") >= 0)
                               {
                               alert("Atenção: Foi encontrado um erro de digitação no seu email e será automaticamente corrigido");
                               ObjEmail.value = EmailText.replace(".combr", ".com.br");
                               } 
                           return true;
                 }
       else
                 {
                 alert("Formato do endereço de E-mail Incorreto!");
                 return false; 
                 }
   }
   
//====================================================================================
//emailValidate
//====================================================================================

/*
Function emailValidate
    Descricao
        Valida emails, valida varios emails separados por ; e envia uma mensagem de erro
    Parametros
        txtEmail
            string contendo 1 email ou mais separados por ;
        msgErro
            menssagem exibida se houver emails invalidos
    returns
        boolean
    Depends
        checkEmail_2
    observacao
        envia um alert com mensagem e emails "considerados" incorretos.
*/


function emailValidate(txtEmail, msgErro)
{
	var arrEmailsTemp = txtEmail.split(';');
	var indice        = 0;
	var RE            = / /g;
	var emailInvalido = '';
	var retorno       = true;
	var Erro          = '';

	for (indice = 0; indice < arrEmailsTemp.length; indice++)
	{	
		arrEmailsTemp[indice] = Trim(arrEmailsTemp[indice]);

		if ( arrEmailsTemp[indice] != '' )
		{
			if (!(checkEmail_2(arrEmailsTemp[indice])))
			{
				emailInvalido += Trim(arrEmailsTemp[indice]) + ';\n';
				retorno = false;
			}
		}
	}
	
    if (!retorno)
    {
	    if (msgErro != '')
	    {
		    alert(msgErro + '\n\nE-mail(s):\n' + emailInvalido);
        }
        else
        {
            alert('E-mail(s) Inválido(s):\n\n' + emailInvalido);
        }
    }


	return retorno;
}

//====================================================================================
//checkEmail_2
//====================================================================================

/*
Function checkEmail_2
    Descricao
        Valida 1 unico email
    Parametros
        txtEmail
            string contendo email a ser validado
    returns
        boolean
    Depends
    observacao
*/
function checkEmail_2(EmailText)
  {

    if ((EmailText.search(/;/i) == -1) &&
        (EmailText.search(/,/i) == -1) &&
        (EmailText.indexOf("..") == -1) &&
        (EmailText.indexOf(".@") == -1) &&
        (EmailText.indexOf("@.") == -1) &&
        (EmailText.search(/"/i) == -1) &&
        (EmailText.search(/'/i) == -1) &&
        (EmailText.indexOf("^") == -1) &&
        (EmailText.search(/`/i) == -1) &&
        (EmailText.search(/~/i) == -1) &&
        (EmailText.search(/ç/i) == -1) &&
        (EmailText.indexOf("#") == -1) &&
        (EmailText.indexOf("%") == -1) &&
        (EmailText.indexOf("+") == -1) &&
        (EmailText.indexOf("*") == -1) &&
        (EmailText.indexOf("@@") == -1) &&
        (EmailText.indexOf("/") == -1) &&
        (EmailText.indexOf("\\") == -1) &&
        (EmailText.indexOf(".") > -1) && //Tem que ter pelo menos 1 ponto
        (EmailText.length > 4) &&
        (EmailText.search(/@/i) >= 1) &&
        (EmailText.substr(0,1) != ".") && // Não pode começar com ponto
        (EmailText.substr(EmailText.length-1) != ".") && // Não pode terminar com ponto
        (EmailText.indexOf("@") != -1) &&
        (EmailText.indexOf(".combr") == -1))
                 {
                         if (EmailText.indexOf("hotmail.com.br") >= 0)
                               {return false;}
                         else if (EmailText.indexOf("aol.com.br") >= 0)
                               {return false;}
                         else if (EmailText.indexOf(".combr") >= 0)
                               {return false;}
                         return true;
                 }
       else
                 {
                 return false; 
                 }
   }


