
/* funcao que verifica o preenchimento dos campos do formulario
author: Claumir Claudino - claumir@dynamix.com.br
since: 17/01/2002
*/

function validarPreenchimento(cmp, msg)
{
    if(cmp.value == "")
	{
		alert(msg);
		cmp.focus();
		return false;
	}
	return true;
}

/* funcao que valida o correto preenchimento do e-mail
author: Claumir Claudino - claumir@dynamix.com.br
since: 17/01/2002
*/

function validarEmail(cmp, msg)
{
	 if( validarPreenchimento(cmp, msg) )
	 {
	    if( cmp.value.indexOf("@") == -1 ) 
		{
			alert(msg);
			cmp.focus();
			return false;
		}
		return true;
	 }
	 return false;
}

/* funcao que valida valores numericos genericos
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoNumerico(cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		if ( !isNumber(cmp.value) )
		{
			alert(msg);
			cmp.focus();
			return false;
		}
	return true;
	}
	return false;
}

/* Remove espaços em branco do valor passado */
function trim ( value ) {
	return value.replace(/^\s*/, "").replace(/\s*$/, "");
}

/* Verifica se o valor passado contem APENAS numeros 
 *  Não levando em conta, numero com ponto flutuante, etc.. */
function isNumber( c ) {
	for( var i = 0; i < c.length; i++ ) {
		if( isNaN(c.charAt(i)) || trim(c.charAt(i)) == "" ) {
			return false;
		}
	}
	return true;
}

/* funcao que valida valores numericos genericos
author: Simone Pereira - simone@dynamix.com.br
since: 23/01/2003
*/

function validarCEP(cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		if (isNaN(cmp.value) || (cmp.value == "00000000") )
		{
			alert(msg);
			cmp.focus();
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida o campo radio
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoRadio(cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		var ok = false;
		for (var i=0; i<cmp.length; i++)
		{
			if (cmp[i].checked)
			{
				ok = true;
			}
		}
		if (! ok)
		{
			alert(msg);
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida o campo select
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoSelect(cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		if (cmp.options[cmp.selectedIndex].value == "-1")
		{
			alert(msg);
			cmp.focus();
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida o campo checkebox
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoCheckbox(cmp)
{
	if (validarPreenchimento(cmp) )
	{
		if (!(cmp.checked) )
		{
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida intervalos de valores
author: Simone Pereira - simone@dynamix.com.br
since: 21/01/2002
*/

function validarIntervalo(mini, maxi, cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		if ( (cmp.value < mini) || (cmp.value > maxi) || isNaN(cmp.value))
		{
			alert(msg);
			cmp.focus();
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida um campo de senha
author: Simone Pereira - simone@dynamix.com.br
since: 21/01/2002
*/

function validarSenha(cmp, msg)
{
	if (validarPreenchimento(cmp, msg) )
	{
		if ( (cmp.value.indexOf(" ") != -1)|| (cmp.value.indexOf("!") != -1) ||
			 (cmp.value.indexOf("@") != -1) || (cmp.value.indexOf("#") != -1) ||
			 (cmp.value.indexOf("$") != -1) || (cmp.value.indexOf("%") != -1) ||
			 (cmp.value.indexOf("¨") != -1) || (cmp.value.indexOf("&") != -1) ||
			 (cmp.value.indexOf("*") != -1) || (cmp.value.indexOf("(") != -1) ||
			 (cmp.value.indexOf(")") != -1) || (cmp.value.indexOf(";") != -1) ||
			 (cmp.value.indexOf("'") != -1) || (cmp.value.indexOf(":") != -1) ||
			 (cmp.value.indexOf("´") != -1) || (cmp.value.indexOf("`") != -1) ||
			 (cmp.value.indexOf("^") != -1) || (cmp.value.indexOf("~") != -1) ||
			 (cmp.value.indexOf("{") != -1) || (cmp.value.indexOf("}") != -1) ||
			 (cmp.value.indexOf("[") != -1) || (cmp.value.indexOf("]") != -1) ||
			 (cmp.value.indexOf("?") != -1) || (cmp.value.indexOf("\/") != -1) ||
			 (cmp.value.indexOf("=") != -1) || (cmp.value.indexOf("+") != -1) ||
			 (cmp.value.indexOf("\\") != -1) || (cmp.value.indexOf("\"") != -1) )
		{
			alert(msg);
			cmp.focus();
			return false;
		}
	return true;
	}
	return false;
}

/* funcao que valida o correto preenchimento do CPF - CNPJ
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 21/02/2002
*/

function validarCpfCnpj(cmp, msg)
{
	var posicao;
	var cont;
	var soma;
	var peso;
	var valor;
	var letra;
	var dig;
	var x;
	if(cmp.value.length < 10 && cmp.value.length > 0)
	{
		alert ("Por favor, verifique seu CPF, a quantidade de caracteres não é válida!");
		cmp.focus();
		return false;
	}
	if(cmp.value.length == 14)
		x=5;
		else x=10;
		if(cmp.value != "")	
		{
			posicao = cmp.value;
			for(rep = 2;rep>=1;rep--)
			{
				soma = 0;
				cont = 0;
				for(peso=x; peso >= 2; peso--)
				{
					letra = posicao.charCodeAt(cont);
					if (!((letra>=48) && (letra<=57)))
					{
						alert("Por favor, digite somente números!");
						cmp.focus();
						return false;
					}
					letra = posicao.charAt(cont);
					soma = soma + (letra * peso);
					cont++;
					if ((x==5||x==6)&&(peso==2))
					{
						peso=10;
						x=30;
					}
				}
				x++;
				valor = 11-(soma % 11);
				if ((valor==10)||(valor==11))
					dig=0;
				else
					dig=valor;
				if(x==31)
					x=6;
				if (dig == posicao.charAt(cont)){}
				else
				{
					alert("Por favor, verifique, seu CPF é inválido!");
					cmp.focus();
					return false;
				}
			}
		}
		else
		{
			alert("Por favor, insira o número de seu CPF!");
			cmp.focus();
			return false;
		}
		return true;
}

function selOpcao(campo, valor)
{
	//alert(dia+"-"+mes+"-"+ano);
	var arrSel = campo.length; 

	for (var i=0; i<arrSel; i++)
	{
		if (campo.options[i].text == valor)
			campo.options[i].selected=true;		
	}
}


/* funcao que valida se o valor passado por parametro é numérico
retornado verdadeiro se sim.
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 23/01/2003
*/

function isNumero(valor){
	letra = 0;
	for(i=0; i < valor.length; i++){
		letra = valor.charCodeAt(i);
		if ((letra < 48) || (letra > 57))
			return false;
	}
	return true;
}


/* funcao que valida o correto preenchimento de datas
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 23/01/2003
*/
function validarData(cmp1, cmp2, cmp3, msg){
	if(validarDataAux(cmp1.value, cmp2.value, cmp3.value)){
		return true;
	}
	else{
		alert(msg);
		cmp1.focus();
		return false;	
	}
	
}

function validarDataAux(dd, mm, aaaa){
	if(!isNumero(dd+mm+aaaa))
		return false;
	dd = parseInt(dd, 10);
	mm = parseInt(mm, 10);
	aaaa = parseInt(aaaa, 10);
	if((mm > 12) || (mm < 1) || (dd > 31) || (dd < 1))
		return false;
    maxdd = 0;
    switch (mm) {
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:
      maxdd = 31;
      break;
      case 4:
      case 6:
      case 9:
      case 11:
      maxdd = 30;
      break;
      case 2:
      if ( ((aaaa % 4 == 0) && !(aaaa % 100 == 0)) || (aaaa % 400 == 0) )
        maxdd = 29;
      else
        maxdd = 28;
      break;
    }
    if (dd > maxdd)
      return false;
	return true;
}
