//alert(fVerificaCPFCGC("41806085100"));

function soNumero(e) { 
	var dig; 
	if (window.event) {
		dig = event.keyCode 
	} else {
		dig = e.which 
	}

	// se nao for caracter (0-9) ou backspace (8) ou enter (13) ou funções e setas (0) bloqueia o digito

	if ( !(dig > 47 && dig < 58 || dig == 8 || dig == 13 || dig == 0) ) {
		if (window.event) {
			//IE 
			window.event.returnValue = null;     
		} else {
			//Firefox 
			e.preventDefault(); 
		}
	}
} 

function fVerificaCPFCGC(txtcpfcgc)
{
	sDigito = txtcpfcgc.substring(txtcpfcgc.length,txtcpfcgc.length-2)
	sNumero = txtcpfcgc.substring(0,txtcpfcgc.length-2)
	
	sCpf = sCalculaDigitoMod11(sNumero,2,1)
	sCgc = sCalculaDigitoMod11(sNumero,2,2)
	
	if (sDigito == sCpf)
	{
		return("1" + txtcpfcgc)
	}
	
	else
	{
		if (sDigito == sCgc)
		{
			return("2" + txtcpfcgc)
		}
		
		else
		{
			return("0" + txtcpfcgc)
		}	
	}	
}

function sCalculaDigitoMod11(sValor,iDigSaida,sTipoValidacao)
{
  if (sTipoValidacao == 1) iCod = 12  
  if (sTipoValidacao == 2) iCod = 9   

  for (t=1;t<=iDigSaida;t++)
    {
      soma = 0
      mult = 2
      for (j=sValor.length;j>0;j--)
      {
        soma = soma + (mult * parseInt(sValor.substring(j,j-1),10))
        mult++
        if (mult > iCod) mult = 2
      }
      soma = (soma * 10) % 11
      if (soma == 10) sValor = sValor + "0"
      else sValor = sValor + soma
    }
  	return sValor.substring(sValor.length-iDigSaida,sValor.length)
}

function checkCPF(oSrc, args)
{
  var strNumber = args.Value;
  
  strNumber  = strNumber.replace( ".", "" );
  strNumber  = strNumber.replace( ".", "" );
  strNumber  = strNumber.replace( ".", "" );
  strNumber  = strNumber.replace( "-", "" );

   var result = true;
   var digit;
   var calc;
   
   if (strNumber.length < 4) {
      result = false;
   }
 
   if (!parseInt(strNumber.substring(strNumber.length - 6 , strNumber.length)))
   {
      result = false;
   }
 
 
 	sDigito = strNumber.substring(strNumber.length,strNumber.length-2)
	sNumero = strNumber.substring(0,strNumber.length-2)
	
	sCpf = sCalculaDigitoMod11(sNumero,2,1)
	
	if (sDigito == sCpf)
	{
		result = true;
	}
	else
	{
		result = false;
	
	}	
	
	return args.IsValid = result;
 
   /*
   //digit = parseInt(strNumber.substring(strNumber.length-2, strNumber.length));
   //digit = strNumber.substring(strNumber.length,strNumber.length-2)

   number = strNumber.substring(0 , strNumber.length - 2);
   sNumero = strNumber.substring(0, strNumber.length-2)
   
   
   //calc = parseInt(getCPFDigit(number));
   calc = sCalculaDigitoMod11(number,2,1)
   alert(calc);
 
   if ( digit != calc )
   {
      result = false;
   }
   return args.IsValid = result;
   */
}

function getNumber(strNumber)
{
   var number;
   var strRetNumber="";
 
   for (var i=0 ; i < strNumber.length ; i++)
   {
      number = parseInt(strNumber.charAt(i));
      if ( number )
      {
         strRetNumber += strNumber.charAt(i)
      }
      else
      {
         if ( number == 0 )
         {
            strRetNumber += strNumber.charAt(i)
         }
      }
   }
   return strRetNumber;
}
 
function getCPFDigit(strNumber)
{
   var i;
   var digit1;
   var digit2;
   var total;
   var result;
   
   strNumber = '000000000' + getNumber(strNumber)
   strNumber = strNumber.substring(strNumber.length - 9, strNumber.length)
 
   total=0
   for (i = 1 ; i < 10; i++) 
      total = total + strNumber.substring(i - 1 , i) * (11 - i);
 
   digit1 = total * 10 % 11;
   if (digit1 == 10)
   {
      digit1 = 0;
   }
 
   aux = digit1.toString(10);
   strNumber = strNumber + aux.substring(aux.length - 1 , aux.length);
 
   total=0;
 
   for (i = 1 ; i < 11 ; i++) 
      total = total + strNumber.substring(i - 1 , i) * (12 - i);
 
   digit2 = total * 10 % 11;
   if (digit2 == 10)
   {
      digit2 = 0;
   }
 
   aux = digit1 * 10 + digit2;
   caux = aux.toString(10);
   result = caux.substring(caux.length - 2 , caux.length);
 
   return result;
} 



   function getNumber( number , len )
   {
      var result = '';
      var num, i;
 
      for ( i = 0 ; i < number.length ; i++ )
      {
         try
         {
            num = parseInt( number.substring( i, i + 1 ) );
            result += num;
         }
         catch (exception)
         { }
      }
      if ( result.length != len )
      {
         // Complet with zeros
         result = '000000000000000' + result;
         var newLen = result.length;
         result = result.substring ( newLen - len , newLen );
      }
      return result;
   }
   
   function check1( value )
   {
      var count = 1;
      var len = value.length;
      var first;
      if ( len > 1 )
      {
         first = value.charAt( 0 );
      }
      else
      {
         return args.IsValid = false;
      }
      for ( var i = 1; i < value.length ; i++ )
      {
         if ( value.charAt( i ) == first )
         {
            count++;
         }
      }
 
      if ( count == len )
      {
         return args.IsValid = false;
      }
      
      return true;
   }
 
   
 function checkCNPJ(oSrc, args) 
   { 
	  
	  var  cnpj = args.Value;
	  
	  cnpj = cnpj.replace( ".", "" );
	  cnpj = cnpj.replace( ".", "" );
	  cnpj = cnpj.replace( "/", "" );
	  cnpj = cnpj.replace( "-", "" );
		  
      var cnpjCalc; 
      var cnpjAdd; 
      var i; 
      var cnpjDigit; 
   
      cnpj = getNumber( cnpj , 14 );
	  //alert(cnpj);
      check1( cnpj );
	  //alert(cnpj);
      // Get only numeric digits
      cnpjCalc = cnpj.substring( 0 , 12 );
      
      // First part of digit verification
      cnpjAdd = 0; 
      for( i = 0 ; i < 4 ; i++ ) 
      { 
         cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (5 - i); 
      } 
 
      for( i = 0 ; i < 8 ; i++ ) 
      { 
         cnpjAdd += parseInt( cnpjCalc.substring( i + 4 , i + 4 + 1 ) ) * (9 - i); 
      } 
      
      // Fisrt digit
      cnpjDigit = 11 - (cnpjAdd % 11); 
       
      if ( cnpjDigit == 10 || cnpjDigit == 11 ) 
      { 
         cnpjCalc += '0'; 
      } 
      else 
      { 
         cnpjCalc += cnpjDigit; 
      } 
      
      // Second part of digit verification
      cnpjAdd = 0; 
      for ( i = 0 ; i < 5 ; i++ ) 
      { 
         cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (6 - i); 
      } 
      for ( i = 0 ; i < 8 ; i++ ) 
      { 
         cnpjAdd += parseInt( cnpjCalc.substring( i + 5, i + 5 + 1 ) ) * (9 - i); 
      } 
      
      // Second digit
      cnpjDigit = 11 - (cnpjAdd % 11); 
      if ( cnpjDigit == 10 || cnpjDigit == 11 ) 
      { 
         cnpjCalc += '0'; 
      } 
      else 
      { 
         cnpjCalc += cnpjDigit; 
      } 
      
      return args.IsValid =  ( cnpj == cnpjCalc ); 
   }
   
   
function FormataCgc(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	document.all.item(campo).value
	vr = document.all.item(campo).value; //document.form[campo].value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		document.all.item(campo).value = vr ; }
	 	if ( (tam > 2) && (tam <= 6) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 7) && (tam <= 9) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 6 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 10) && (tam <= 12) ){
	 		document.all.item(campo).value  = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 13) && (tam <= 14) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ;}
	}		
}


function validaCnpj(obj)
{
	var i;
	
	s = document.all.item(obj).value;     //limpa_string(s);
	s = s.replace( ".", "" );
	s = s.replace( ".", "" );
	s = s.replace( "/", "" );
	s = s.replace( "-", "" );
	
	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 false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		alert("CNPJ invalido");
		return 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)
	{
		alert("CNPJ invalido");
		return false;
	}
	return true;
}

function doingValidateDate(oSrc, args) {
	//var oDate = document.all[val.controltovalidate];

	var sDate = args.Value;

	if (sDate == "") 
		return args.IsValid = true;
	
	var iDay, iMonth, iYear;
	var arrValues;
	var today = new Date();
	arrValues = sDate.split("/");
	iDay = arrValues[0];
	iMonth = arrValues[1];
	iYear = arrValues[2];
	if ((iMonth == null) || (iYear == null)) 
		return args.IsValid = false;
	if ((iDay > 31) || (iMonth > 12) || (iYear < 1800 || iYear > 2100)) 
		return args.IsValid = false;
	
	var dummyDate = new Date(iYear, iMonth - 1, iDay);
	
	if ((dummyDate.getDate() != iDay) || (dummyDate.getMonth() != iMonth - 1) || (dummyDate.getFullYear() != iYear)) 
		return args.IsValid =  false;
	return args.IsValid =  true;
}

function FormataCpf(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr = document.all.item(campo).value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		document.all.item(campo).value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		document.all.item(campo).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ;}
	}		
}

function validaCpf(obj)
{   
	var i, vr;
	vr = document.all.item(obj).value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );
	
	var c = vr.substr(0,9); 
	var dv = vr.substr(9,2);
	var d1 = 0; 
	
	for (i = 0; i < 9; i++) 
	{
		d1 += c.charAt(i)*(10-i); 
	} 
  
	if (d1 == 0)
	{   
		alert("CPF Invalido");
		return false; 
	} 
	  
	d1 = 11 - (d1 % 11); 
	  
	if (d1 > 9) d1 = 0;   
	if (dv.charAt(0) != d1)
	{ 
		alert("CPF Invalido") ;
		return 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) 
	{ 
		alert("CPF Invalido") 
		return false;   
	} 
	return true; 
} 


function FormataData(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = document.all.item(campo).value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 2 && tam < 5 )
			document.all.item(campo).value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if ( tam >= 5 && tam <= 10 )
			document.all.item(campo).value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}

}

function FormataDataThis(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 2 && tam < 5 )
			campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if ( tam >= 5 && tam <= 10 )
			campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}

}

function FormataHora(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = document.all.item(campo).value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ":", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 4 && tecla != 8 ){
		if ( tam > 2 && tam < 5)
			document.all.item(campo).value = vr.substr( 0, tam - 2  ) + ':' + vr.substr( tam - 2, tam );
		//if ( tam >= 5 && tam <= 10 )
		//	document.all.item(campo).value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}

}


function FormataMesAno(campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = document.all.item(campo).value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 4 && tecla != 8 ){
		if ( tam > 2 && tam < 5)
			document.all.item(campo).value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		//if ( tam >= 5 && tam <= 10 )
		//	document.all.item(campo).value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}

}

function doingValidateHora(oSrc, args) {
	//var oDate = document.all[val.controltovalidate];
	var sDate = args.Value;
	if (sDate == "") 
		return args.IsValid = true;
	
	var iHor, iMunit;
	
	arrValues = sDate.split(":");
	iHor = arrValues[0];
	iMunit = arrValues[1];
	
	if ((iHor > 23) || (iMunit > 59)) 
		return args.IsValid = false;
	
	return args.IsValid =  true;
}

function doingValidateMesAno(oSrc, args) {
	//var oDate = document.all[val.controltovalidate];
	var sDate = args.Value;
	if (sDate == "") 
		return args.IsValid = true;
	
	var iMes, iAno;
	
	arrValues = sDate.split("/");
	iMes = arrValues[0];
	iAno = arrValues[1];
	iDia = 1;
	
	var today = new Date();
	
	if ((iMes > 12) || (iAno < 1800) || (iAno > today.getFullYear())) 
		return args.IsValid = false;

	var dummyDate = new Date(iAno, iMes  - 1, iDia);
	
	if ((dummyDate.getDate() != iDia) || (dummyDate.getMonth() != iMes - 1) || (dummyDate.getFullYear() != iAno)) 
		return args.IsValid =  false;

	return args.IsValid =  true;
}

function doingValidateAno(oSrc, args) {
	//var oDate = document.all[val.controltovalidate];
	var sDate = args.Value;
	if (sDate == "") 
		return args.IsValid = true;
	
	var iMes
	
	iAno = sDate;

	var today = new Date();
	
	
	if ((iAno < 1900) || (iAno > today.getFullYear())) 
		return args.IsValid = false;

	return args.IsValid =  true;
}

function ValidaData(obj) 
{ 
	var vr = document.all.item(obj).value; 
	var dia, mes, ano; 
	var arrayData; 
	 
	arrayData = vr.split("/"); 
	 
	dia = arrayData[0]; 
	mes = arrayData[1]; 
	ano = arrayData[2]; 
	 
	if (dia > 31) 
	{ 
		alert("Dia invalido"); 
		return false; 
	} 
	if (mes == 2)
	{
		if (dia > 29)
		{
			alert("Dia invalido");
			return false;
		}
	}
	if (mes > 12) 
	{ 
		alert("Mes invalido"); 
		return false; 
	} 
	if (ano < 1900 || ano > 2100) 
	{ 
		alert("Ano invalido"); 
		return false; 
	} 
} 


