/**
* Realiza a validação de Número Decimal.
*/
function fncValNumericoDecimal( sender, args )
{
	var numero = args.Value;
	var re     = /^$/;

	args.IsValid = true; //re.test(numero);
}

/**
* Realiza a validação de CPF.
*/
function fncValCPF( sender, args )
{
	var cpf = args.Value;
	var d1 = 0;

	args.IsValid = false;


    if (cpf.length == 7 && (cpf.substr(0,1) == 'R' || cpf.substr(0,1) == 'r' ))
    {args.IsValid = true;}
    
    
	if ( isNaN(cpf) || cpf.length < 11 ) {
		return;
	}
	
	var c = cpf.substr(0,9);
	var dv = cpf.substr(9,2);
	
	for ( var i = 0; i < 9; i++ ) { 
		d1 += c.charAt(i)*(10-i);
	} 
	
	if ( d1 > 0 ) {
		
		d1 = 11 - (d1 % 11); 
		
		if ( d1 > 9 )
			d1 = 0; 
		
		if ( dv.charAt(0) == d1 ) { 
			
			d1 *= 2; 
			
			for ( var i = 0; i < 9; i++ ) { 
				d1 += c.charAt(i)*(11-i); 
			} 
			
			d1 = 11 - (d1 % 11); 
			
			if ( d1 > 9 )
				d1 = 0; 
			
			if ( dv.charAt(1) == d1 ) {
				args.IsValid = true;
			}
		}
	}
}

/**
* Realiza a validação de campo Data.
*/
function fncValData( sender, args )
{
	var data = args.Value;
	
	if ( (data == null) || (data.length < 10) || data.substring(2,3) != '/' || data.substring(5,6) != '/' )	{
		args.IsValid = false;
		return;
	}
	
	args.IsValid = true;
	
	var dia = data.substring(0,2)-0;
	var mes = data.substring(3,5)-1;
	var ano = data.substring(6,10)-0;
	var oData = new Date(ano, mes, dia);    
	
	if ( dia != oData.getDate() )
		args.IsValid = false;
	
	if ( mes != oData.getMonth() )
		args.IsValid = false;
	
	if ( ano != oData.getFullYear() )
		args.IsValid = false;

	if ( parseInt(ano,10) < 1800 )
		args.IsValid = false;
}

/**
* Realiza a validação de campo Data Nascimento.
*/
function fncValDataNascimento( sender, args )
{
	var valido = true;
	var data = args.Value;
	
	if ( (data == null) || (data.length < 10) || data.substring(2,3) != '/' || data.substring(5,6) != '/' )	{
		args.IsValid = false;
		return;
	}
	
	var dia = data.substring(0,2)-0;
	var mes = data.substring(3,5)-1;
	var ano = data.substring(6,10)-0;
	var oData = new Date(ano, mes, dia);   
	var dataAtual = new Date();
	
	if ( dia != oData.getDate() )
		valido = false;
	
	if ( mes != oData.getMonth() )
		valido = false;
	
	if ( ano != oData.getFullYear() )
		valido = false;		
	
	args.IsValid = ( valido && ( oData.getTime() <= dataAtual.getTime() ) );
}

/**
* Realiza a validação de campo Hora.
*/
function fncValHora( sender, args )
{
	var hora = args.Value;
	
	if ( (hora == null) || (hora.indexOf(':') == -1) ) {
		args.IsValid = false;
		return;
	}
	
	args.IsValid = true;
	
	var arr = hora.split(':');
	
	if ( arr.length == 0 ) {
		arr[0] = '00';
		arr[1] = '00';
	}
	else if ( arr.length == 1 ) {
		arr[1] = '00';
	}
	
	var hor = parseInt(arr[0],10);
	var min = parseInt(arr[1],10);
	
	return ( hor >= 0 && hor <= 23 && min >= 0 && min <= 59 )
}

/**
* Realiza a validação de campo Mes/Ano.
*/
function fncValMesAno( sender, args )
{
	var mesAno = args.Value;
	
	if ( (mesAno == null) || (mesAno.length < 7) || mesAno.substring(2,3) != '/' )	{
		args.IsValid = false;
		return;
	}
	
	args.IsValid = true;
	
	var mes = parseInt(mesAno.substring(0,2),10);
	var ano = parseInt(mesAno.substring(3,7),10);
	
	if ( mes < 1 || mes > 12 )
		args.IsValid = false;
	
	if ( ano < 1900 || ano > 2100 )
		args.IsValid = false;
}

/**
* Realiza a validação de campo CEP.
*/
function fncValCEP( sender, args )
{
	var cep = args.Value;
	var re  = /^\d{5}\-\d{3}$/;

	args.IsValid = re.test(cep);
}

/**
* Realiza a validação de campo Telefone.
*/
function fncValFone( sender, args )
{
	var fone = args.Value;
	var re   = /^\d{2} \d{3,4}\-\d{4}$/;

	args.IsValid = re.test(fone);
}

/**
* Realiza a validação de campo Email.
*/
function fncValEmail( sender, args )
{
	var email = args.Value;
	var re    = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	
	args.IsValid = re.test(email);
}
