function campo_em_branco(vObj,vDescricao)
{
  //Esta função verifica se o campo está em branco.
  //Se estiver, avisa ao usuário e seta o focus no campo
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
  //vDescricao->Descrição do campo, que aparecerá na mensagem
  if(vObj.value=="")
	{
		inMsg = "Por favor,\nPreencha o campo '" + vDescricao + "' corretamente."
    alert(inMsg);
	  vObj.focus();
    return true;
	}
	else
	{
		return false;
	}
}

function radio_em_branco(vObj, vDescricao)
{
  //Esta função verifica nenhum dos radios está selecionado.
  //Se não estiver, avisa ao usuário e seta o focus no campo
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
  //vDescricao->Descrição do campo, que aparecerá na mensagem
  sRadio = 0;
  for(n=0;n<=vObj.length-1;n++)
  {
    if(vObj[n].checked)
    {
      sRadio = 1;
      return false;
    }
  }
  
  if(sRadio == 0)
  {
 	  inMsg = "Por favor,\nSelecione o campo '" + vDescricao + "' corretamente."
    alert(inMsg);
	  //vObj.focus();
    return true;
  }
}

function quant_maxima_carac(vObj,vDescricao,vMax)
{
  //Esta função verifica se a quantidade de caracteres do valor digitado no campo está dentro de um limite máximo.
  //Se não estiver, avisa ao usuário qual é o limite e seleciona o texto do campo
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
  //vDescricao->Descrição do campo, que aparecerá na mensagem
  //vMax->Valor máximo
	if(vObj.value.length > vMax)
	{
		 inMsg = "Por favor,\nO campo " + vDescricao + " pode conter no máximo " + vMax + " caracteres. Ele agora tem " + vObj.value.length + " caracteres";
   alert(inMsg);
		 vObj.focus();
	  vObj.select();
   return true;
	}
	else
	{
		return false;
	}
}

function email_incorreto(vObj)
{
  //Esta função verifica se a maneira que o e-mail foi digitado está correto.
  //Se não estiver, mostra uma mensagem e seleciona o texto do campo.
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
	
  //Se foi digitado algo no campo
  if(vObj.value.length == 0){return false;}
  
	email=vObj.value;
	//Verificando "@"
	x=email.indexOf('@');
	if(x < 0)
	{ 
  	alert('Prezado usuário,\nO E-mail informado está incorreto.\nEle deve conter o simbolo "@"');
		vObj.focus();
		vObj.select();
    return true; 
  } 
  else
	{
  	if(email.length == (x+1) || email.substring(x+1,x+2) == '.' )
		{
    	alert('Prezado usuário,\nO E-mail informado está incorreto.\nO simbolo "@" não pode ser seguido de "."');
      vObj.focus();
			vObj.select();
      return true;
    }
	}

	//Verificando ","
	x=email.indexOf(',');	
	if(x != -1)
	{
		alert('Prezado usuário,\nO E-mail informado está incorreto.\nO E-mail não pode conter ","');
    vObj.focus();
		vObj.select();
    return true;
	}	
		
	//Verificando ";"
	x=email.indexOf(';');	
	if(x != -1)
	{
		alert('Prezado usuário,\nO E-mail informado está incorreto.\nO E-mail não pode conter ";"');
    vObj.focus();
		vObj.select();
    return true;
	}

	//Verificando se possui mais de um e-mail
	if(email != "")
	{
		spEmail = email.split("@")
			if(spEmail.length > 2)
			{
				alert('Prezado usuário,\nVocê deve inserir apenas um E-mail neste campo.');
	      vObj.focus();
				vObj.select();
				return true;
			}
	}
	
	//Verificando se possui espaços em branco no e-mail
	if(email != "")
	{
		spEmail = email.split(" ")
	  if(spEmail.length > 1)
		{
		  alert('Prezado usuário,\nO E-mail deve ser contínuo não contendo espaços em branco');
	    vObj.focus();
			Obj.select();
			return true;
	  }
	}
}

function campo_nao_numerico(vObj,vDescricao)
{
  //Esta função verifica se o campo só contém números, utilizando a função "caracter_numerico"
  //Se for, retorna true. Se não for, retorna false
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
  
  //Se foi digitado algo no campo
  if(vObj.value.length == 0){return false;}
  
	texto = vObj.value;
	for(i=0;i<=texto.length-1;i++)
	{
		if(!caracter_numerico(texto.charAt(i)))
		{
		inMsg = "Por favor,\nO campo " + vDescricao + " só pode conter números."
    alert(inMsg);
	  vObj.focus();
		vObj.select();
		return true;
		}
	}
	return false;
}

function caracter_numerico(vCaracter)
{
  //Esta função verifica se vCaracter é numérico.
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.nome)
	if(vCaracter != '-' && vCaracter != '0' && vCaracter != '1' && vCaracter != '2' && vCaracter != '3' && vCaracter != '4' && vCaracter != '5' && vCaracter != '6' && vCaracter != '7' && vCaracter != '8' && vCaracter != '9')
	{
		return false;	
	}
	else
	{
		return true;
	}
}

function cpf_incorreto(vObj)
{
  //Esta função verifica se o campo é um cpf válido
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.cpf)
  
  //Se foi digitado algo no campo
  if(vObj.value.length == 0){return false;}
  
  //------------------------------------------------------
  // Preparando o valor a ser calculado
  //------------------------------------------------------
  //***Mensagen em casos de erro
  sMsg = "Prezado usuário,\nO CPF preenchido não é válido.";
  
  //***Pegando o valor do cpf
  vValor = vObj.value;
  
  //***Excluindo '.' e '-'
  vValor = vValor.replace(/\./gi,'');
  vValor = vValor.replace(/-/gi,'');
  
  //***Se a quant. de carac. for diferente de 11 ou for = 00000000000, gera erro
  if(vValor.length != 11 || vValor == "00000000000")
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }

  //------------------------------------------------------
  // Calculando o primeiro dígito
  //------------------------------------------------------
  sDig1 = 0;
  
  //***Fazendo o checksum do primeiro dígito
  for(i=2;i<=10;i++)
  {
    sDig1 = sDig1 + vValor.substring(10-i,11-i) * i;
  }
  sDig1 = sDig1 -(11 * (parseInt(sDig1 / 11)))
  
  //***Acertando o valor calculado do primeiro dígito
  if(sDig1==0 || sDig1==1)
  {
    sDig1 = 0;
  }
  else
  {
    sDig1 = 11 - sDig1;
  }

  //***Se o primeiro dígito não for igual ao penúltimo algarismo, gera erro
  if(sDig1!=vValor.substring(9,10))
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }
  
  //------------------------------------------------------
  // Calculando o segundo dígito
  //------------------------------------------------------
  sDig2 = 0;
  
  //***Fazendo o checksum do segundo dígito
  for(i=1;i<=10;i++)
  {
    sDig2 = sDig2 + vValor.substring(10-i,11-i) * (i+1);
  }
  sDig2 = sDig2 -(11 * (parseInt(sDig2 / 11)))
  
  //***Acertando o valor calculado do segundo dígito
  if(sDig2==0 || sDig2==1)
  {
    sDig2 = 0;
  }
  else
  {
    sDig2 = 11 - sDig2;
  }

  //***Se o segundo dígito não for igual ao último algarismo, gera erro
  if(sDig2!=vValor.substring(10,11))
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }
}

function cnpj_incorreto(vObj)
{
  //Esta função verifica se o campo é um cnpj válido
  //Parâmetros:
  //vObj->Nome do objeto(Ex:document.form.cnpj)
  
  //Se foi digitado algo no campo
  if(vObj.value.length == 0){return false;}
  
  //------------------------------------------------------
  // Preparando o valor a ser calculado
  //------------------------------------------------------
  //***Mensagen em casos de erro
  sMsg = "Prezado usuário,\nO CNPJ preenchido não é válido.";
  
  //***Pegando o valor do cpf
  vValor = vObj.value;
  
  //***Excluindo '.' e '-'
  vValor = vValor.replace(/\./gi,'');
  vValor = vValor.replace(/-/gi,'');
  vValor = vValor.replace(/\//gi,'');
  
  //***Se a quant. de carac. for diferente de 14 ou for = 00000000000000, gera erro
  if(vValor.length != 14 || vValor == "00000000000000")
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }

  //------------------------------------------------------
  // Calculando o primeiro dígito
  //------------------------------------------------------
  sDig1 = 0;
  
  //***Fazendo o checksum do primeiro dígito
  for(i=2;i<=9;i++)
  {
    sDig1 = sDig1 + vValor.substring(13-i,14-i) * i;
  }
  
  for(i=2;i<=5;i++)
  {
    sDig1 = sDig1 + vValor.substring(5-i,6-i) * i;
  }
  
  sDig1 = sDig1 -(11 * (parseInt(sDig1 / 11)))
  
  //***Acertando o valor calculado do primeiro dígito
  if(sDig1==0 || sDig1==1)
  {
    sDig1 = 0;
  }
  else
  {
    sDig1 = 11 - sDig1;
  }

  //***Se o primeiro dígito não for igual ao penúltimo algarismo, gera erro
  if(sDig1!=vValor.substring(12,13))
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }
  
  //------------------------------------------------------
  // Calculando o segundo dígito
  //------------------------------------------------------
  sDig2 = 0;
  
  //***Fazendo o checksum do segundo dígito
  for(i=1;i<=8;i++)
  {
    sDig2 = sDig2 + vValor.substring(13-i,14-i) * (i+1);
  }
  
  for(i=1;i<=5;i++)
  {
    sDig2 = sDig2 + vValor.substring(5-i,6-i) * (i+1);
  }
  sDig2 = sDig2 -(11 * (parseInt(sDig2 / 11)))
  
  //***Acertando o valor calculado do segundo dígito
  if(sDig2==0 || sDig2==1)
  {
    sDig2 = 0;
  }
  else
  {
    sDig2 = 11 - sDig2;
  }

  //***Se o segundo dígito não for igual ao último algarismo, gera erro
  if(sDig2!=vValor.substring(13,14))
  {
    alert(sMsg);
	  vObj.focus();
		vObj.select();
    return true;
  }
}

function ShowObs(vForm,vObj,vStatus,vMax,vDescricao)
{
  var sTexto;
  sTexto = "";

  if(document.all["div" + vForm + vObj.name + "carac"] && vDescricao)
  {
    sTexto = sTexto + vDescricao;
  }  

  if(document.all["div" + vForm + vObj.name + "carac"] && parseInt(vMax) > 0)
  {
    sTexto = sTexto + " [" + parseInt(parseInt(vMax) - vObj.value.length) + "]";
  }
  
  if(sTexto.length > 0)
  {
    document.all["div" + vForm + vObj.name + "carac"].innerHTML = sTexto;
    document.all["div" + vForm + vObj.name + "carac"].style.visibility = vStatus;
  }
}

function UpdateObs(vForm,vObj,vMax,vDescricao)
{
  s = parseInt(vMax) - vObj.value.length;
  if(s < 0)
  {
    document.all["div" + vForm + vObj.name + "carac"].style.background = "red";
  }
  else
  {
    document.all["div" + vForm + vObj.name + "carac"].style.background = "#ffff99"
  }
  document.all["div" + vForm + vObj.name + "carac"].innerHTML = vDescricao + " [" + s + "]";
}
