//maximo nr de letras
function conta_texto(campo, campo_tamanho, limite_max) {
  if (campo.value.length > limite_max)
      {campo.value = campo.value.substring(0, limite_max);}
      else
      {campo_tamanho.value = limite_max - campo.value.length;}
}

// Limpa campo
function limpa(campo,texto)
{
	if (campo.value == texto)
		campo.value = "";
	return(true);
}

// Testa campo de texto NAO obrigatorio
function ValidaTexto(campo)
{
	var i = 0;
	if (campo.value.length > 0)
	{
		var val = checkTexto(String(campo.value));
		if (String(val) == "false")
		{
			//alert("O texto que inseriu não é valido")
			campo.focus();
			return(false);
		}
	}
	return(true);
}

// Testa campo de texto obrigatorio
function ValidaTexto_obrig(campo)
{
	var i = 0;
	if (campo.value.length == 0)
	{
		return(false);
	}
	if (campo.value == "Qualquer...")
	{
		return(false);
	}
	var val = checkTexto(String(campo.value));
	if (String(val) == "false")
	{
		//alert("O texto que inseriu não é valido")
		campo.focus();
		return(false);
	}
	return(true);
}

// Testa se é texto
function checkTexto(texto)
{
	var listaBad = "'|"
	var checkStr = texto;
	var Valido =(true);
	var decPoints = 0;
	var allstr = "";
	for (i = 0;i < checkStr.length;i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;j < listaBad.length;j++)
			if (ch == listaBad.charAt(j))
				break;
		if (j != listaBad.length)
		{
			Valido =(false);
			break;
		}
		if (ch == ".")
		{
			allstr += ".";
			decPoints++;
		}
		else if (ch != ",")
		allstr += ch;
	}
	if (!Valido)
	{
		return (false);
	}
	return (true);
} 

// Testa campo de numero NAO obrigatorio
function ValidaNumero(campo)
{
	var i = 0;
	if (campo.value.length > 0)
	{
		var val = checkNumero(String(campo.value));
		if (String(val) == "false")
		{
			//alert("O texto que inseriu não é valido")
			campo.focus();
			return(false);
		}
	}
	return(true);
}

// Testa campo de numero obrigatorio
function ValidaNumero_obrig(campo)
{
	var i = 0;
	if (campo.value.length == 0)
	{
		return(false);
	}
	var val = checkNumero(String(campo.value));
	if (String(val) == "false")
	{
		//alert("O texto que inseriu não é valido")
		campo.focus();
		return(false);
	}
	return(true);
}


// Testa campo de telefone NAO obrigatorio
function ValidaTelefone(campo)
{
	var i = 0;
	if (campo.value.length > 0)
	{
		if (campo.value.length > 8 & campo.value.length < 15)
		{
			var val = checkNumero(String(campo.value));
			if (String(val) == "false")
			{
				//alert("O texto que inseriu não é valido")
				campo.focus();
				return(false);
			}
		} else {
		return(false);
		}
	}
	return(true);
}

// Testa campo de telefone obrigatorio
function ValidaTelefone_obrig(campo)
{
	var i = 0;
	if (campo.value.length > 8 & campo.value.length < 15)
		{
		var val = checkNumero(String(campo.value));
		if (String(val) == "false")
		{
			//alert("O texto que inseriu não é valido")
			campo.focus();
			return(false);
		}
		return(true);
	} else {
		return(false);
	}
}

// Testa se é numero
function checkNumero(texto)
{
	var listaOK = "0123456789";
	var checkStr = texto;
	var Valido =(true);
	var decPoints = 0;
	var allstr = "";
	for (i = 0;i < checkStr.length;i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;j < listaOK.length;j++)
			if (ch == listaOK.charAt(j))
				break;
		if (j == listaOK.length)
		{
			Valido =(false);
			break;
		}
		if (ch == ".")
		{
			allstr += ".";
			decPoints++;
		}
		else if (ch != ",")
		allstr += ch;
	}
	if (!Valido)
	{
		return (false);
	}
	return (true);
} 

// Testa campo de e-mail NAO obrigatorio
function ValidaEmail(campo)
{
	var i = 0;
	if (campo.value.length > 0)
	{
		var val = checkEmail(campo);
		if (String(val) == "false")
		{
			//alert("O email que inseriu não é valido")
			campo.focus();
			return(false);
		}
	}	
	return (true);
}

// Testa campo de e-mail obrigatorio
function ValidaEmail_obrig(campo)
{
	var i = 0;
	if (campo.value.length == 0)
	{
		//alert ("O Email que inseriu não está num formato válido.");
		return(false);
	}
	var val = checkEmail(campo);
	if (String(val) == "false")
	{
		//alert("O email que inseriu não é valido")
		campo.focus();
		return(false);
	}
	return (true);
}

// Testa se é e-mail
function checkEmail(campo)
{
	emailObj = campo;
	if(emailObj != null)
	{
		var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/i;
		return reg.test(emailObj.value);    
	}        
}


// valida campo data obrigatorio
function ValidaData_obrig(campo)
{
	if (campo.value.length < 8)
	{
		return (false);
	}
	
	var val = checkData(campo.value, "-");
	var val2 = checkNumeroData(campo.value);
	if (String(val) == "false" | String(val2) == "false")
	{
		campo.focus();
		return(false);
	}
	return (true);
}

// valida campo data n obrigatorio
function ValidaData(campo)
{
	if (campo.value.length > 0)
	{
		if (campo.value.length < 8)
		{
			return (false);
		}
		var val = checkData(campo.value, "-");
		var val2 = checkNumeroData(campo.value);
		if (String(val) == "false" | String(val2) == "false")
		{
			campo.focus();
			return(false);
		}
		return (true);
	}
	return (true);
}

// valida select obrigatorio
function ValidaSelect(campo)
{
	if (campo.selectedIndex == 0)
	{
		return (false);
	}
	return (true);
}

// testa data
function checkData(Data, Separador){
	//aaaa-mm-dd
	var dataar = Data.split(Separador)
	var dia = parseInt(dataar[2],10);
	var mes = parseInt(dataar[1],10);
	var ano = parseInt(dataar[0],10);
	var anob = ((2000 + ano) % 4);
		if (Data.split(Separador).length == 3) {
			if (ano > 1000 & ano < 10000 & mes > 0 & mes < 13 & dia > 0 & dia < 32) {
				if ( mes == 4 | mes == 6 | mes == 9 | mes == 11 ){
					if (dia > 30) {
						return (false);
					}
				}
				if (dia > 29 & mes == 2){
					return (false);
				}
				if (dia == 29 & mes == 2 & anob == 0){
						return (false);
				}
				return (true);
			}
		}
	return (false);
}


function checkNumeroData(texto)
{
	var listaOK = "0123456789-";
	var checkStr = texto;
	var Valido =(true);
	var decPoints = 0;
	var allstr = "";
	for (i = 0;i < checkStr.length;i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;j < listaOK.length;j++)
			if (ch == listaOK.charAt(j))
				break;
		if (j == listaOK.length)
		{
			Valido =(false);
			break;
		}
		if (ch == ".")
		{
			allstr += ".";
			decPoints++;
		}
		else if (ch != ",")
		allstr += ch;
	}
	if (!Valido)
	{
		return (false);
	}
	return (true);
} 

// Remove Tags nao desejadas para o servidor
function remove_Xtags(objecto)
{
	listaBad = "|@!{[]}";
	new_text = "";
	texto = objecto.value;
	total = texto.length;
	var i = 0;
	var tot = total;
	if (total > 0) {
		while (i < tot) {
			ch = texto.charAt(i);
			for (j = 0;j < listaBad.length;j++)
				if (ch == listaBad.charAt(j))
					break;
			if (ch == listaBad.charAt(j)){
				ch2 = texto.charAt(i+1);
				if (ch == ch2) {
					new_text = "";
					for (x=0; x<i;x++)
					{
						new_text = new_text + texto.charAt(x);
					}
					for (x=i+1; x < tot ;x++)
					{
						new_text = new_text + texto.charAt(x);
					}
					texto = new_text;
					tot = texto.length;
					i = -1;
				}
			}
			i=i+1;
		}
	}
	objecto.value = texto;
}


// Validaçao de campos    

function validar(tipo,campo,msg_erro,cor_ok,cor_bad)
{
	msg_ = "";

	switch(tipo)
	{
	case "TXT_OB":
			if(ValidaTexto_obrig(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "TXT":
			if(ValidaTexto(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "NUM_OB":
			if(ValidaNumero_obrig(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "NUM":
			if(ValidaNumero(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "TEL_OB":
			if(ValidaTelefone_obrig(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "TEL":
			if(ValidaTelefone(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "DATA_OB":
			if(ValidaData_obrig(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "DATA":
			if(ValidaData(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "EMAIL_OB":
			if(ValidaEmail_obrig(campo) == (false)) { msg_ = msg_erro; }
			break;	
	case "EMAIL":
			if(ValidaEmail(campo) == (false)) { msg_ = msg_erro; }
			break;
	case "SELECT_OB":
			if(ValidaSelect(campo) == (false)) { msg_ = msg_erro; }
			break;
	}

		campo.style.backgroundColor=cor_ok;	
	if (msg_.length != 0) {
		campo.style.backgroundColor=cor_bad;
	}
	return (msg_);
}









