	/*
	Uso: simplesmente inclua:
	includedir('_app/plugins/js/validacao');
	e use as class pré-definidas nos campos que deseja validar.
	
	.doRequired		Validação (Proíbe campos em branco)		<< Você pode usar o attr "title" para mostrar mostrar um nome de campo elegante ao retornar erro >>

	.doPassaporte		Máscara
	.doRA			Máscara (Registro de Alistamento Militar)
	.doRenavam		Máscara
	.doCNH			Máscara (Carteira de Habilitação)
	.doChassi		Máscara
	.doData			Máscara
	.doRG			Máscara
	.doFone			Máscara
	.doCPF			Máscara, Validação
	.doCEP			Máscara
	.doCNPJ			Máscara, Validação
	.doMoeda			Máscara
	
	.doEmail			Validação
	.doNumber		Validação
	.doFloat			NÃO IMPLEMENTADO AINDA
	
	.doEstado		É necessário ter os dois campos com as classes: .doEstado e .doCidade
	.doCidade		Complementar (e obrigatório) ao usar o .doEstado
	*/
$(function() {

	$('.doPassaporte').mask('aa999999');
	$('.doRA').mask('99999999999');
	$('.doRenavam').mask('99999999-9');
	$('.doCNH').mask('999999999?99');
	$('.doChassi').mask('*****************');
	$('.doData').mask('99/99/9999');
	$('.doRG').mask('99.999.999-9');
	$('.doFone').mask('(99) 9999-9999');
	$('.doCPF').mask('999.999.999-99');
	$('.doCEP').mask('99999-999');
	$('.doCNPJ').mask('99.999.999/9999-99');
	$('.doMoeda').maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:"."});
	
	$("form").each(function() {
	
	
	
	$(this).submit(function() {
	
		var Erros = false;
		$('.doEmail').each(function() {
			var isRequired = $(this).hasClass('doRequired');
			var isFilled = $(this).val(); if(isFilled != '') isFilled = true; else isFilled = false;
			if(isRequired || isFilled) {
			if(!checkMail($(this).val())) {
				alert('Por favor, preencha seu email corretamente');
				$(this).focus();		
				Erros = true;
				return false;
			}
			}
		});
		
		if(!Erros) {
		$('.doRequired').each(function() {
			if($(this).val().length == 0) {
				var nomeOk = $(this).attr('title')
				if(nomeOk == '') nomeOk = $(this).attr('name');
				alert('Por favor, o campo '+nomeOk+' precisa ser preenchido. ');
				$(this).focus();		
				Erros = true;
				return false;
			}
		});	
		}
		
		if(!Erros) {
		$('.doCNPJ').each(function() {
			var isRequired = $(this).hasClass('doRequired');
			var isFilled = $(this).val(); if(isFilled != '') isFilled = true; else isFilled = false;
			if(isRequired || isFilled) {
			if(!validarCNPJ($(this).val())) {
				$(this).focus();		
				Erros = true;
				return false;
			}
			}
		});	
		}	
		
		if(!Erros) {
		$('.doCPF').each(function() {
			var isRequired = $(this).hasClass('doRequired');
			var isFilled = $(this).val(); if(isFilled != '') isFilled = true; else isFilled = false;
			if(isRequired || isFilled) {
			if(!validarCPF($(this).val())) {
				$(this).focus();		
				Erros = true;
				return false;
			}
			}
		});	
		}		

		if(Erros) {
			return false;
		} else {
			return true;
		}
	});
	
	}); //Fim do Each
	
	$('.doNumber').each(function() {
		$(this).keydown(function(event) { 
			var k = event.which;
			
			switch(k) {
				case 8:		return true;	// backspace
				case 9:     return true;	// tab
				case 37:    return true;	// left arrow
				case 39:    return true;	// right arrow
				case 46:    return true;	// delete
			}
			
			if(k >= 48 && k <= 57) {
				return true;
			} else 
			if(k >= 96 && k <= 105) {
			
			} else {
				return false;
			}
		});
	});	
	
	
	
	/*
	.doEstado
	.doCidade
	*/
	var vCidEst = 0;
	var vCidadeEstadoChange = false;
	$('.doEstado').each(function() {
		//Recupera ID
		var vEstado = $(this).attr('id');
		var vCidade = $('.doCidade').eq(vCidEst).attr('id');
		
		//Caso não tenha ID
		if(vEstado == '' || vEstado == undefined) {
			$(this).attr('id', function(arr) { return "dgCidadeEstado_estado" +arr; }).each(function() { vEstado = this.id });
		}
		if(vCidade == '' || vCidade == undefined) {
			$('.doCidade').eq(vCidEst).attr('id', function(arr) { return "dgCidadeEstado_cidade" +arr; }).each(function() { vCidade = this.id });
		}
		
		//Contador
		vCidEst++;
		
		//Valores Padrão
		var vEstadoVal = $('#'+vEstado).html();
		var vCidadeVal = $('#'+vCidade).html();
		
		//alert(vEstado + ' ' +vCidade+ ' :'+vCidEst);
		if($(this).is('input')) { var vCidadeEstadoChange = true; }
		new dgCidadesEstados({
			cidade: document.getElementById(vCidade),
			estado: document.getElementById(vEstado),
			estadoVal: vEstadoVal,
			cidadeVal: vCidadeVal,
			change: vCidadeEstadoChange
		});

		
	});
	
	
	/*
	//Cidade Retrieve
	var vEstado = $('.doEstado').attr('id');
	var vCidade = $('.doCidade').attr('id');
	new dgCidadesEstados({
		estado: document.getElementById(vEstado),
		cidade: document.getElementById(vCidade)
	});	
	*/


});





/*
window.onload = function() {
  new dgCidadesEstados({
	estado: document.getElementById('estado'),
	cidade: document.getElementById('cidade')
  });
}
*/

//estado: document.getElementById('estado')
//cidade: document.getElementById('cidade')
