﻿// JScript File


//------------------------------------------------------------------------------------------
//Validação de CNPJ / CPF
//	obs: utilizar com CustomValidator valida_CPFCNPJ
//------------------------------------------------------------------------------------------	
// Validação de CPF e CNPJ
function valida_CPFCNPJ(oSrc,args)
{
  if (args.Value.length == 11)
  {
     valida_CPF(oSrc,args);
  } 
  else 
  if(args.Value.length == 11)
  {
    valida_CNPJ(oSrc, args);
  }
  else
  {
    return args.IsValid = false;
  }
}

//Validação de CPF
function valida_CPF(oSrc,args)
{
  s = args.Value;
  //args.isValid = (s >= 3);
  //document.write(oSrc.Value + ',' + args.Value);
  if (isNaN(s)) 
  {
    return args.IsValid = false;
  }
  var i;
  var c = s.substr(0,9);
  var dv = s.substr(9,2);
  var d1 = 0;
 
  for (i = 0; i < 9; i++) 
  {
     d1 += c.charAt(i)*(10-i);
  }

  if (d1 == 0)
  {
    return args.IsValid = false;
  } 

  d1 = 11 - (d1 % 11);

  if (d1 > 9) d1 = 0; 

  if (dv.charAt(0) != d1) 
  {
    return args.IsValid = false; 
  }

  d1 *= 2;

  for (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) 
  {
    return args.IsValid = false;
  }

  return args.IsValid = true;

} 

//Validação de CNPJ

function valida_CNPJ(oSrc, args){

s = args.Value;

if (isNaN(s)) {

return args.IsValid = false;

}

var i;

var c = s.substr(0,12);

var dv = s.substr(12,2);

var d1 = 0;

for (i = 0; i <12; i++){

d1 += c.charAt(11-i)*(2+(i % 8));

}

if (d1 == 0) 

return args.IsValid = false;

d1 = 11 - (d1 % 11);

if (d1 > 9) d1 = 0;

if (dv.charAt(0) != d1){

return args.IsValid = false;

}

d1 *= 2;

for (i = 0; i < 12; i++){

d1 += c.charAt(11-i)*(2+((i+1) % 8));

}

d1 = 11 - (d1 % 11);

if (d1 > 9) 

d1 = 0;

if (dv.charAt(1) != d1){

return args.IsValid = false;

}

return args.IsValid = true;
} 



//----------------------------------------------
//
//----------------------------------------------
function Trim(parametro)
{
    var vNome    	 = parametro;
    var vNomeLst   	 = "";
    var vNomeqtd 	 = 0;
    var vcontrole	 = 0;
	var vespacoduplo = 0;
	var vNomeAux     = "";
	
  
    if (vNome.length <=0)
        //return args.IsValid = false;
		return false;
        
    //retira + de um espaco
    for(x=0;x<vNome.length;x++)
    {
  
	  if(vNome.charAt(x) == " ")
	  {
	  	vespacoduplo ++;
		
		if(vespacoduplo == 1)
			vNomeqtd++;

		if(vespacoduplo	== 1 && vNomeAux != "")
		{
		  	vNomeAux 	 = vNomeAux + " " ;
		}
	  }		
	  else
	  {
	  	vNomeAux 	 = vNomeAux + vNome.charAt(x);		
		vespacoduplo = 0
	  }
    }
	
	x   = vNomeAux.length;
	pos = vNomeAux.lastIndexOf(" ");

	x   = x - pos
	if (x == 1)
		vNomeAux = vNomeAux.substring(0,NomeAux.length-1)

	return   vNomeAux
}


function CaracterSequenciaRepetida(texto)
{
	var vTexto 	= texto;
	var vaux	= "!@#$%";
	var contar 	= 0;
	
	for(x=0;x<=vTexto.length;x++)
	{
		vaux = vTexto.charAt(x-1);
		//alert(x +  " -> " + vTexto.charAt(x) + " = " + vaux);
		if(vTexto.charAt(x) == vaux)
		{
			//vaux = vTexto.charAt(x);
			contar = contar + 1;
			//alert("Conatdor" + contar );
			if (contar >=3)
			{
				return true;
			}

		}
		else
		{
			contar = 1;		
		}
		
	}
	return false;
}

function ValidaNomeCompleto(oSrc,args)
{

	vNome = args.Value;
	//alert(vNome);
	
	// retirando os espaços
	vNome = Trim(vNome)
	
	// texto deve ter no mínimo 2 caracter
	if(vNome.length <=2)
		return args.IsValid = false; //return false;
		
	//Sequencia de Caracter repetido	
	if(CaracterSequenciaRepetida(vNome))
		return args.IsValid = false; //return false;
	
	cont = 0;
	caracter = 0;

	for (x=0;x<=vNome.length;x++)
	{
		if(vNome.charAt(x) == " ")
			cont = cont + 1;
	}
	cont = cont + 1;

	Nomes = new ArrayNome(cont);
	
	var cont 	 = 0;
	var vNomeLst = "";
	for(x=0; x <= vNome.length;x++)
	{
		if(vNome.charAt(x) == ' ')
		{
			cont = cont + 1;
			//alert(vNomeLst);
			Nomes[cont] = new ArrayNome(vNomeLst);
			vNomeLst = "";		
			posicao = x;
		}
		else
		{
			vNomeLst = vNomeLst + vNome.charAt(x);
		}	
	}	
	cont = cont + 1;
	Nomes[cont] = new ArrayNome(vNomeLst);

	//for(x=1;x<=cont;x++)
	//		alert(Nomes[x].Nome);

	if(cont <= 1 )
		return args.IsValid = false; //return false;	

	
	return args.IsValid = true;	//return true


}


function ArrayNome(parametro)
{
    this.Nome = parametro
}


//------------------------------------------------------------------------------------------
// NUMERO - TESTA SE E NUMERICO
//------------------------------------------------------------------------------------------
// PARAMETROS DE ENTRADA:
//		-> Valor ou texto
//
// SAIDA:
// 		-> true ou false
// 
// obs 
// 
function IsNumeric(oSrc,args)
{
	var vValor = args.Value;
	
	if(vValor <=0 || vValor >= 0)
	    return args.IsValid = true;	
	else
	    return args.IsValid = true;
}

//------------------------------------------------------------------------------------------
// NUMERO - TESTA SE E NUMERICO POSITIVO
//------------------------------------------------------------------------------------------
// PARAMETROS DE ENTRADA:
//		-> Valor ou texto
//
// SAIDA:
// 		-> true ou false
// 
// obs 
// 
function IsNumericPos(oSrc,args)
{
	var vValor = args.Value;
	
	if(vValor >= 0)
	    return args.IsValid = true;
	else
	    return args.IsValid = false;
}

//------------------------------------------------------------------------------------------
// NUMERO - TESTA SE E NUMERICO NEGATIVO
//------------------------------------------------------------------------------------------
// PARAMETROS DE ENTRADA:
//		-> Valor ou texto
//
// SAIDA:
// 		-> true ou false
// 
// obs 
// 
function IsNumericNeg(oSrc,args)
{
	var vValor = args.Value;
	
	if(vValor <= 0)
	    return args.IsValid = true;
	else
	    return args.IsValid = false;
}


//------------------------------------------------------------------------------------------
// CEP - VALIDA CAMPO CEP
//------------------------------------------------------------------------------------------
// PARAMETROS DE ENTRADA:
//		-> Valor ou texto
//
// SAIDA:
// 		-> true ou false
// 
// obs 
// 
function ValidaCep(oSrc,args)
{
	var vValor = args.Value;
	
	if(vValor.length < 8)
	    return args.IsValid = false;
	else
	    return args.IsValid = true;
}