// Rotinas extras

//var gridRecords = gridRecords();

// Ativando máscaras em todos os inputs (MeioMask)
(function($){
    $(function(){
        $('input:text').setMask();
    });
})(jQuery);

// Configurando tabelas
$(document).ready( function() {
    $('table').dataTable({
        "bJQueryUI": true,
        "bProcessing": false,
        "bServerSide": false,
        "bSort": false,            
        "bFilter": false,
        "iDisplayLength": gridRecords
    });
});

// Configurando calendário (UI Datepicker)
$(function() {
	$('.data').datepicker({
		showOn: 'button',
		buttonImage: formCalendar,
		buttonImageOnly: true,		
		dateFormat: 'dd/mm/yy',
		monthNames: [  
			'Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro',  
			'Outubro','Novembro','Dezembro'  
		],
		dayNamesShort: [  
			'Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'  
		],
		dayNamesMin: [  
			'D','S','T','Q','Q','S','S','D'  
		],
		dayNames: [  
				'Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'  
			],
		monthNamesShort: [  
			'Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set',  
			'Out','Nov','Dez'  
		],  
		nextText: 'Próximo',  
		prevText: 'Anterior'			  			   			   			   			 
	})	
});

// Validar CPF (JQuery Validate)
jQuery.validator.addMethod("cpf", function(value, element) 
{  
	value = value.replace('.','');  
	value = value.replace('.','');  
	cpf = value.replace('-','');  
	while(cpf.length < 11) cpf = "0"+ cpf;  
	var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;  
	var a = [];  
	var b = new Number;  
	var c = 11;  
	for (i=0; i<11; i++){  
		a[i] = cpf.charAt(i);  
		if (i < 9) b += (a[i] * --c);  
	}  
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }  
	b = 0;  
	c = 11;  
	for (y=0; y<10; y++) b += (a[y] * c--);  
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }  
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;  
	return true;  
	}, 
	"CPF inválido."
);

// Validar CNPJ (JQuery Validate)
jQuery.validator.addMethod("cnpj", function(cnpj, element) {
   cnpj = jQuery.trim(cnpj);

	// DEIXA APENAS OS NÚMEROS
   cnpj = cnpj.replace('/','');
   cnpj = cnpj.replace('.','');
   cnpj = cnpj.replace('.','');
   cnpj = cnpj.replace('-','');

   var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
   digitos_iguais = 1;

   if (cnpj.length < 14 && cnpj.length < 15){
	  return false;
   }
   for (i = 0; i < cnpj.length - 1; i++){
	  if (cnpj.charAt(i) != cnpj.charAt(i + 1)){
		 digitos_iguais = 0;
		 break;
	  }
   }

   if (!digitos_iguais){
	  tamanho = cnpj.length - 2
	  numeros = cnpj.substring(0,tamanho);
	  digitos = cnpj.substring(tamanho);
	  soma = 0;
	  pos = tamanho - 7;

	  for (i = tamanho; i >= 1; i--){
		 soma += numeros.charAt(tamanho - i) * pos--;
		 if (pos < 2){
			pos = 9;
		 }
	  }
	  resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	  if (resultado != digitos.charAt(0)){
		 return false;
	  }
	  tamanho = tamanho + 1;
	  numeros = cnpj.substring(0,tamanho);
	  soma = 0;
	  pos = tamanho - 7;
	  for (i = tamanho; i >= 1; i--){
		 soma += numeros.charAt(tamanho - i) * pos--;
		 if (pos < 2){
			pos = 9;
		 }
	  }
	  resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	  if (resultado != digitos.charAt(1)){
		 return false;
	  }
	  return true;
   }else{
	  return false;
   }
}, "CNPJ inválido."); // Mensagem padrão 
