/**
 *
 * Funções
 * Lista de funções utilizadas por várias páginas no site
 *
 **/


/**
 * exists(id)
 *
 * Descrição:
 * Verifica se o elemento existe no DOM
 *
 * id: ID do elemento verificado
 *
**/
function exists(id)
{
	return ($('#' + id).length == 1) ? true : false;
}



/**
 * isEmpty()
 *
 * Descrição:
 * Verifica se o campo está vazio
 *
 * idInput: ID do input/textarea que será validado
 *
**/
function isEmpty(idInput)
{
	return ($('#' + idInput).val() == '') ? true : false;
}



/**
 * isEquals()
 *
 * Descrição:
 * Verifica se o valor do input/textarea é igual ao valor informado
 *
 * idInput: ID do input/textarea que será validado
 * compararCom: Valor que será utilizado na comparação
 *
**/
function isEquals(idInput, compararCom)
{
	return ($('#' + idInput).val() == compararCom) ? true : false;
}



/**
 * lengthOf(idInput, operation, compararCom)
 *
 * Descrição:
 * Verifica o tamanho (length) informado no input de acordo com a operação especificada
 *
 * idInput: ID do input/textarea que será validado
 * operation: Operação que será efetuada
 * compararCom: Valor que será utilizado na comparação
 *
**/
function lengthOf(idInput, operation, compararCom)
{
	var valueLength = $('#' + idInput).val().length;
	var result = false;

	switch(operation)
	{
		case '>':
			result = (valueLength > compararCom) ? true : false;
			break;

		case '>=':
			result = (valueLength >= compararCom) ? true : false;
			break;

		case '<':
			result = (valueLength < compararCom) ? true : false;
			break;

		case '<=':
			result = (valueLength <= compararCom) ? true : false;
			break;

		case '==':
			result = (valueLength == compararCom) ? true : false;
			break;

		case '!=':
			result = (valueLength != compararCom) ? true : false;
			break;
	}

	return result;
}



/**
 * validarCampo(tipo, valor)
 *
 * Descrição:
 * Valida o valor informado, utilizando Expressões Regulares
 *
 * tipo: Tipo de campo que será validado
 * valor: Valor informado no campo que será validado
 *
 **/
function validarCampo(tipo, valor)
{
	var filter;

	switch(tipo)
	{
		case "email":
			filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
			break;

		case "ddd":
			filter = /^[0-9]{2}$/;
			break;

		case "telefone":
			filter = /^[0-9]{8}$/;
			break;

		case "telefone-full":
			filter = /^\([0-9]{2}\) [0-9]{8}$/;
			break;

		case "cep":
			filter = /^[0-9]{5}-[0-9]{3}$/;
			break;

		case "estado":
			filter = /^(AC|AL|AP|AM|BA|CE|DF|ES|GO|MA|MT|MS|MG|PA|PB|PR|PE|PI|RJ|RN|RS|RO|RR|SC|SP|SE|TO)$/;
			break;

		default:
			return false;
	}

	return (filter.test(valor)) ? true : false;
}

