//*****************************************************************************
//Objetivo:					Encapsular funcionalidades do Jurídico
//Autor:					Camila Daiani da Silva
//Data:						11/12/2006
//*****************************************************************************
//*****************************************************************************
// DECLARAÇÃO DAS VARIÁVEIS
//*****************************************************************************

//=============================================================================================
// Objetivo:...........:
// Premissas...........:
// Entradas............:
// Retorno.............:
//=============================================================================================
function  validaMailing (objFrm, strEdicao){
	var intEmail;	//Retorno da validação do e-mail
	try{
		intEmail = validaEmail(objFrm.txtEmailMenu.value);
		if (intEmail == 0){
			objFrm.txtEmailMenu.focus();
			return false;								
		}
		objFrm.action = "FormCadastroMailing.asp";
		objFrm.submit();
	}
	catch(objException)
	{
		if(!(isNaN(objException.number)))
		{
			alert(objException.message);
		}
		else
		{	
			alert(objException.toString());
		}
	}
}


//=============================================================================================
// Objetivo:...........:
// Premissas...........:
// Entradas............:
// Retorno.............:
//=============================================================================================
function ValidaInfoMailing (objFrm){
	var intEmail;	//Retorno da validação do e-mail
	try{
		intEmail = validaEmail(objFrm.txtEmail.value);
		if (intEmail == 0){
			objFrm.txtEmail.focus();
			return false;								
		}
		objFrm.submit();
	}
	catch(objException)
	{
		if(!(isNaN(objException.number)))
		{
			alert(objException.message);
		}
		else
		{	
			alert(objException.toString());
		}
	}
}

//=============================================================================================
// Objetivo:...........:
// Premissas...........:
// Entradas............:
// Retorno.............:
//=============================================================================================
function validaEnter(objFrm, strEdicao){
	var intEvento; // Evento
	try{
		intEvento = event.keyCode;
		if (intEvento == 13)
		{
			event.cancelBubble = true
			event.returnValue = false;
			validaMailing(objFrm, strEdicao);
		}
	}
	catch(objException)
	{
		if(!(isNaN(objException.number)))
		{
			alert(objException.message);
		}
		else
		{	
			alert(objException.toString());
		}
	}
}

//============================================================================================
// objetivo........: Valida campo email
// Premissas.......:
// Entradas........: strEmail email a ser validado (string)
// Retorno.........: true or false
//============================================================================================	
function validaEmail(strEmail)
{
	var strEmailRet = new String(strEmail.toLowerCase());	// Recebe o valor do email e força caracters minusculo
	var intValida;											// Define se o processo voi válido ou não
	var intAux;												// Variavel utilizada no laço for

		intValida = 0;
		
		// Verifica se a variavel so tem números
		if (!isNaN(strEmailRet))
		{
			alert("Digite o seu e-mail.");
			return intValida;
		}
		// Verifica se a variavel tem pelo menos um @
		if(strEmailRet.indexOf("@")== -1)
		{
			alert("Email Inválido");
			return intValida;
		}
		// Verifica se o caracter . está ao lado do @.
		if(strEmailRet.indexOf(".@")!= -1)
		{
			alert("Email Inválido");
			return intValida;
		}
		// Verifica se o caracter @ está na primeira posiçao
		if(strEmailRet.indexOf("@")== 0)
		{
			alert("Email Inválido, o @ não pode vir na primeira posição");
			return intValida;
		}
		// Verifica se este caracters aparecem nesta ordem @.com
		if(strEmailRet.indexOf("@.com")!= -1)
		{
			alert("Email Inválido,  @.com não podem vir seguido");
			return intValida;
		}
		// Verifica se existe espaços em branco no email
		if(strEmailRet.indexOf(" ")!= -1)
		{
			alert("Email Inválido, não pode haver espaços em branco");
			return intValida;
		}
		// Verifica se a variavel termina com "." ou "@"
		if(strEmail.charAt(strEmailRet.length-1) == "." || strEmail.charAt(strEmailRet.length-1) == "@")
		{
			alert("Email Inválido");
			return intValida;
		}
		// Verifica se o email é menor que 150 caracteres
		if(strEmailRet.length > 150)
		{
			alert("Email Inválido, números de caracteres superior ao permitido");
			return intValida;
		}
		// Percorre o email passado para achar caracter inválido
		for (intAux=0;intAux<strEmailRet.length;intAux++)
		{
			// Analise pelo código ascii
			if ((strEmailRet.charCodeAt(intAux)<45 || strEmailRet.charCodeAt(intAux)==47) || (strEmailRet.charCodeAt(intAux)>57 && strEmailRet.charCodeAt(intAux)<64) || (strEmailRet.charCodeAt(intAux)>90 && strEmailRet.charCodeAt(intAux)< 95) || strEmailRet.charCodeAt(intAux)== 96 || (strEmailRet.charCodeAt(intAux)>122))
			{
				alert("Email Inválido, caracteres inválidos   " +  String.fromCharCode(strEmailRet.charCodeAt(intAux)));
				return intValida;
			}
			// Verifica
			if (strEmailRet.charCodeAt(intAux)==64)
			{
				if(strEmailRet.substr(intAux+1).indexOf("@")!=-1)
				{
					alert("Email Inválido, não pode haver dois @ no email.");
					return intValida;
				}
			}
			if (strEmailRet.charCodeAt(intAux)==45 || strEmailRet.charCodeAt(intAux)==46 || strEmailRet.charCodeAt(intAux)==95 || strEmailRet.charCodeAt(intAux)==64)
			{
				if(intAux<strEmailRet.length-1)
				{	
					if(strEmailRet.charAt(intAux)== strEmailRet.charAt(intAux+1))
					{
						alert("Email Inválido, não pode haver o caracter \""+strEmailRet.charAt(intAux) +"\" lado a lado no email.");
						return intValida;
					}
				}	
			}
		}
		// Caso passe pela validação atribui 1 a variavel intValida
		intValida = 1;
	// Verifica o resultado da validação e define o retorno da função
	return intValida;
}

//=============================================================================================
// Objetivo:...........:
// Premissas...........:
// Entradas............:
// Retorno.............:
//=============================================================================================
function ValidaMailingMenu (objFrm, strEdicao){
	var intEmail;	//Retorno da validação do e-mail
	try{
		intEmail = validaEmail(objFrm.txtEmailMenu.value);
		if (intEmail == 0){
			objFrm.txtEmailMenu.focus();
			return false;								
		}
		objFrm.action = "FormCadastroMailing.asp";
		objFrm.submit();
	}
	catch(objException)
	{
		if(!(isNaN(objException.number)))
		{
			alert(objException.message);
		}
		else
		{	
			alert(objException.toString());
		}
	}
}

