$(document).ready(function(){

	$("#associadoEm").mask("99/99/9999");
	
	$("#nascimento").mask("99/99/9999");
	$("#nascimentoConjuge").mask("99/99/9999");
	$("#cpf").mask("999.999.999-99");
	$("#cpfConjuge").mask("999.999.999-99");
	$("#cep").mask("99.999-999");
	$('#codigoFlp').mask('999999999999');
	$('#patrocinador').mask('999999999999');
	$('#endNum').keypress(function(event) {
		    return somenteNumeroOnkeypress(event);
		  });

	$("#estadoSl").bind('change',function() {
		if ($("#estadoSl option:selected").html() != 'UF'){
			$("#estado").val('');
			$("#cidade").val('');
			$("#estado").val($("#estadoSl option:selected").html());
			$("#cidadeSelect").load('gestaoFLP/util/cidadeVolpe.php?uf=' + $("#estado").val());
		}else{
			$("#estado").val('');
			$("#cidade").val('');
		}
	});
	
	$("#cidadeSelect").bind('change',function() {
		if ($("#cidadeSelect option:selected").html() != 'Selecione a cidade'){
			$("#cidade").val('');
			$("#cidade").val($("#cidadeSelect option:selected").html());
		}else{
			$("#cidade").val('');
		}
	});
	
	
	 $('#agencia').keypress(function(event) {
		    return somenteNumeroOnkeypress(event);
		  });
	 $('#conta').keypress(function(event) {
		    return somenteNumeroOnkeypress(event);
		  });
	 $('#dgConta').keypress(function(event) {
		    return somenteNumeroOnkeypress(event);
		  });
	 
	 $("#banco").bind('blur',function(){
			switch($("#banco option:selected").html()){
				case 'Banco do Brasil':
					$("#agencia").attr('maxlength', '4');
					$("#dgAgencia").attr('maxlength', '1');
					$("#conta").attr('maxlength', '10');
					$("#dgConta").attr('maxlength', '1');
					$("#dgAgencia").attr('readonly','');
					$("#dgAgencia").val('');
					break;
				case 'Bradesco':
					$("#agencia").attr('maxlength', '4');
					$("#dgAgenciadgAgencia").attr('maxlength', '1');
					$("#conta").attr('maxlength', '7');
					$("#dgConta").attr('maxlength', '1');
					$("#dgAgencia").attr('readonly', '');
					$("#dgAgencia").val('');
					break;
				case 'Caixa Econômica Federal':
					$("#agencia").attr('maxlength', '4');
					$("#dgAgencia").attr('maxlength', '1');
					$("#conta").attr('maxlength', '8');
					$("#dgConta").attr('maxlength', '1');
					$("#dgAgencia").attr('readonly', 'readonly');
					$("#dgAgencia").val('');
					break;
				case 'Itau':
					$("#agencia").attr('maxlength', '4');
					$("#dgAgencia").attr('maxlength', '1');
					$("#conta").attr('maxlength', '5');
					$("#dgConta").attr('maxlength', '1');
					$("#dgAgencia").attr('readonly', 'readonly');
					$("#dgAgencia").val('');
					break;
				case 'Unibanco':
					$("#agencia").attr('maxlength', '4');
					$("#dgAgencia").attr('maxlength', '1');
					$("#conta").attr('maxlength', '6');
					$("#dgConta").attr('maxlength', '1');
					$("#dgAgencia").attr('readonly', 'readonly');
					$("#dgAgencia").val('');
					break;
			}
			
		});
	

	$("#obterEndereco").bind('click',obterEndereco);
	$("#cep").bind("blur",obterEndereco);

	$('#loading').ajaxStart(function() {
		$(this).fadeIn();
	}).ajaxStop(function() {
		$(this).fadeOut();
	});

	$('#estadoCivil').bind('change',function(){
		if ($('#estadoCivil option:selected').text() == 'Casado') {
			$('#dadosConjuge').show();
		} else {
			$('#dadosConjuge').hide();
		}
	});

	if (estadoCivil == 'Casado') {
		$('#dadosConjuge').show();
	}

	//$("#codigoFlp").bind('blur',validaCodigo);
	//$("#patrocinador").bind('blur',validaCodigo);
	$.validator.addMethod("reqBanco", function(value, element) {
		  //console.debug(!(($("#agencia").val() != '' || $("#conta").val() != '') && $("#banco option:selected").html() == 'Selecione o banco'));
		  return !(($("#agencia").val() != '' || $("#conta").val() != '') && $("#banco option:selected").html() == 'Selecione o banco');
		}, "&raquo; Por favor, selecione qual é o seu banco.");

	/*$.validator.addMethod("maiorIdade", function(value, element) {
		  var valor = value.split('/');
		  var idade = new Date();
		  idade.setFullYear(valor[2],valor[1] - 1, valor[0]);
		  var hj = new Date();
		  var ano = hj.getFullYear() - 18;
		  hj.setFullYear(ano);
		  //console.debug(hj+'   '+'    '+idade);
		  return idade < hj;
		}, "&raquo; Você deve ter acima de 18 anos.");*/

	function verificaFlp(element) {
		var result = $.ajax({
		type: "POST",
		url: "gestaoFLP/util/verificaFLP.php",
		data: "codigoFlp="+element.value,
		async: false,
		global: false
		}).responseText;
		return result;
		}

		$.validator.addMethod("FLPSite", function(value, element, params){
			var result = verificaFlp(element); 
			return (params == eval(result)); 
		});
		
		function verificaCPF(element) {
			var result = $.ajax({
			type: "POST",
			url: "gestaoFLP/util/verificaCPFVolpe.php",
			data: "flp="+$('#codigoFlp').val()+"&cpf="+element.value,
			async: false,
			global: false
			}).responseText;
			return result;
			}

			$.validator.addMethod("CPFVolpe", function(value, element, params){
				var result = verificaCPF(element); 
				return (params == eval(result)); 
			});
		
		//Verifica patrocinador no volpe
		function verificaFlpPatrocinador(element) {
			var result = $.ajax({
			type: "GET",
			url: "gestaoFLP/util/verificaDadoPatrocinador.php",
			data: "codigoFlp="+$('#codigoFlp').val(),
			async: false,
			global: false
			}).responseText;
			var valida;
			
			if (result==$('#patrocinador').val()){
				valida = true;
			}else{
				valida = false;
			}
			return valida;
			}

			$.validator.addMethod("verificaPatrocinador", function(value, element, params){
				var result = verificaFlpPatrocinador(element);
				return (true == eval(result)); 
			});

	$.validator.addMethod("cpfConjuge", function(value, element,param) {
		if ($("#estadoCivil option:selected").text() == 'Casado') {
			if (param.condicao != 0 && eval(param.elTamanho) != param.condicao){
				return true;
			}
			var CPF = value;
		    var valido = true;
			var a = [];
		    var b = new Number;
		    var c = 11;
			var nonNumbers = /\D/;

		    if (!(CPF.length == 11) && !(CPF.length == 14)) {
				valido = false;
			}

			if (CPF.length == 14) {
		     	CPF = CPF.replace (".","");
				CPF = CPF.replace (".","");
		     	CPF = CPF.replace ("-","");
			}

		    if (nonNumbers.test(CPF)) {
				valido = false;
			}

		    if (CPF == "00000000000" || CPF == "11111111111" || CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" || CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" || CPF == "88888888888" || CPF == "99999999999"){
		        valido = false;
		    }

		    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])){
		         valido = false;
		      }
		      return valido;
		} else {
			return true;
		}
	}, "&raquo; Este CPF é inválido.");

	$("#formulario-inserir-dis").validate({
		errorClass: "erro",
		errorLabelContainer: "#erroDiv",
		wrapper: "li",
		onfocusout: false,
		onkeyup: false,
		onclick: false,
		invalidHandler: function(form, validator) {
			window.scroll(0,0);
		},
		rules: {
		     nome: "required",
		     telDDD: "required",
		     tel: "required",
		     email: {
		       required: true,
		       email: true,
		       remote: "gestaoFLP/util/verificaEmail.php"
		     },
		     codigoFlp: {required: true,
		    	 		 rangelength:[12,12],
		    	 		 FLPSite:true,
		    	 		 remote: "gestaoFLP/util/verificaFLPVolpe.php"},
		     cpf: 		{required: true, cpf: true, CPFVolpe:true, remote: "gestaoFLP/util/verificaCPF.php"},
		     cpfConjuge: {required: function(element) {
						          return ($("#estadoCivil option:selected").text() == 'Casado');
						      },
						      cpfConjuge: true,
						      remote: "gestaoFLP/util/verificaCPF.php"},
			 conjuge: {required: function(element) {
						          return ($("#estadoCivil option:selected").text() == 'Casado');
						      }
						  },
		     nascimento: {required: true, dataBR: true},
		     patrocinador: {required: true, 
		    	 			rangelength:[12,12],
		    	 			verificaPatrocinador: "true"},
		     nomePatrocinador: {required: true},
		     //associadoEm: {dataBR: true},
		     endereco: "required",
		     endNum: "required",
		     bairro: "required",
		     cidade: "required",
		     estado: "required",
		     senha: {required: true, minlength: 4},
		     senhaConf: {required: true, equalTo: "#senha"},
		     banco: "reqBanco",
		     agencia: {required: function(element) {
					           return ($("#conta").val() != '' || $("#banco option:selected").html() != 'Selecione o banco');
					       }
			},
			dgAgencia: {
				required: function(element) {
		        	return ($("#banco option:selected").html() == 'Banco do Brasil'||$("#banco option:selected").html() == 'Bradesco');
		    	}
			},
			conta: {required: function(element) {
				           return ($("#conta").val() != '' || $("#banco option:selected").html() != 'Selecione o banco');
				       }
			},
			dgConta: {required: function(element) {
		           return ($("#dgConta").val() != '' || $("#banco option:selected").html() != 'Selecione o banco');
		       }
			},
			tipo: {required: function(element) {
				 //console.debug(!(($("#agencia").val() == '' && $("#conta").val() == '') && !($("#tipoPoup").attr('checked') || $("#tipoCc").attr('checked'))));
								return !(($("#agencia").val() == '' && $("#conta").val() == '') && !($("#tipoPoup").attr('checked') || $("#tipoCc").attr('checked')) && $("#banco option:selected").html() == 'Selecione o banco');
					       }
			}
		   },
		   messages: {
		     nome: "&raquo; Por favor, entre com o seu nome.",
		     telDDD: "&raquo; Por favor, entre com o seu DDD.",
		     tel: "&raquo; Por favor, entre com o seu telefone.",
		     email: {
		       required: "&raquo; Por favor, entre com o seu email.",
		       email: "&raquo; Esse endereço de e-mail é inválido.",
		       remote: "&raquo; Esse e-mail já está cadastrado em nosso banco de dados. Por favor use outro."
		     },
		     codigoFlp: {required: "&raquo; Por favor, entre com o seu código FLP.",
		    	 		 rangelength:"&raquo; Esse código FLP é inválido.",
		    	 		 FLPSite: "&raquo; Esse FLP já está cadastrado em nosso site.",
		    	 		 remote: "&raquo; Esse código FLP é inválido."},
		     cpf: {required: "&raquo; Por favor, entre com o seu CPF.",
		    	   cpf: "&raquo; Esse CPF é inválido.",
		    	   CPFVolpe: "&raquo; CPF não confere.",
		    	   remote: "&raquo; Já existe um Empreendedor cadastrado com esse CPF. Por favor, entre em contato com nossa Central de Relacionamento."},
		     cpfConjuge: { required: "&raquo; Por favor, entre com o CPF do seu Conjuge.",
		    		   	   cpfConjuge: "&raquo; O CPF do seu Conjuge é inválido.",
		    		   	   remote: "&raquo; Já existe um Empreendedor cadastrado com esse CPF. Por favor, entre em contato com nossa Central de Relacionamento."},
		     conjuge: {required: "&raquo; Por favor, entre com o nome do seu Conjuge."},
		     nascimento: {required: "&raquo; Por favor, entre com a data do seu nascimento.",
		    		      dataBR: "&raquo; Essa data de nascimento é inválida"},
		      patrocinador: {required: "&raquo; Por favor, entre com o código FLP do seu Patrocinador.",
		    		      rangelength:"&raquo; O código FLP do seu Patrocinador é inválido.",
		    		      verificaPatrocinador: "&raquo; O código FLP do seu Patrocinador está incorreto."},
		      nomePatrocinador: "&raquo; Por favor, entre com o nome do seu Patrocinador.",
	    	  //associadoEm: {dataBR: "&raquo; Essa data de associação é inválida"},
	    	  endereco: "&raquo; Por favor, entre com o seu endereço.",
			  endNum: "&raquo; Por favor, entre com o número do seu endereço.",
			  bairro: "&raquo; Por favor, entre com o seu bairro.",
			  cidade: "&raquo; Por favor, entre com o sua cidade. Caso não encontre na lista, favor entrar em contato com a Central de Relacionamento pelo telefone 4003-0357.",
			  estado: "&raquo; Por favor, entre com o seu estado.",
	    	  senha: {required: "&raquo; Por favor, entre com uma senha.",
	    		      minlength: "&raquo; A senha tem que ter pelo menos 4 caracteres."},
			  senhaConf: {required: "&raquo; A confirmação da senha é obrigatória.",
	    		    	  equalTo: "&raquo; As senha são diferentes. Por favor, entre com elas novamente."},
	    	  banco: {reqBanco: "&raquo; Por favor, selecione qual é o seu banco."},
	    	  agencia: {required: "&raquo; Por favor entre com a sua agência."},
	    	  dgAgencia: {
					required: "&raquo; Por favor, entre com o dígito da sua agência."
				},
	    	  conta: {required: "&raquo; Por favor entre com a sua conta."},
	    	  dgConta: {
					required: "&raquo; Por favor, entre com a sua conta."
				},
	    	  tipo: {required: "&raquo; Por favor entre com o tipo de sua conta."}
		   }
		});

});

var estadoCarregado = function () {
	$("#estado").bind('change',function(){
		var estado = $(this).val();
		$("#selCidade").load("gestaoFLP/util/cidade.php?estado="+estado+"&cidade="+cidade);
	});
};

var validaCodigo = function() {
	if($(this).val().substr(0,2) != '55') {
		//alert('oi');
		$(this).focus();
	}
};

var obterEndereco = function() {
	var cep = $("#cep").val();

	if(cep.indexOf('.') != -1) {
		cep = cep.split('.').join('');
	}
	if(cep.indexOf('-') != -1) {
		cep = cep.split('-').join('');
	}

	$("#endereco").val('');
	$("#bairro").val('');
	$("#cidade").val('');
	$("#estado").val('');

	$.ajax({
		url: "gestaoFLP/util/cep.php",
		type: "POST",
		data: {cep: cep},
		dataType: 'json',
		success: preencheEndereco,
		error: liberaEndereco
	});
};

var preencheEndereco = function(dados) {
	if (dados['endereco'] != ' '){
		$("#endereco").val(dados['endereco']);
		$("#bairro").val(dados['bairro']);
		$("#cidade").val(dados['cidade']);
		$("#estado").val(dados['estado']);
		$("#cidade").attr('readonly', 'readonly');
		$("#estado").attr('readonly', 'readonly');
		$("#cidadeSelect").hide();
		$("#estado").show();
		$("#cidade").show();
		$("#estadoSl").hide();
	} else {
		liberaEndereco();
	}
};

var liberaEndereco = function (XMLHttpRequest, textStatus, errorThrown) {
	$("#endereco").removeAttr('readonly');
	$("#bairro").removeAttr('readonly');
	$("#cidade").removeAttr('readonly');
	$("#estado").removeAttr('readonly');
	$("#cidade").hide();
	$("#cidadeSelect").show();
	$("#estado").hide();
	$("#estadoSl").show();
};


function isCharPermitido(tecla) {
  //podem ser incluidos mais caracteres aqui caso seja necess·rio.. existem browsers  que detectam   alguns caracteres como direcionais, delete, tab, etc...
  //char de 48 a 57 correspondem de '0' a '9'
  //char 8 corresponde ao backspace. 
//char 9 corresponde a tecla tab.
  return (tecla >= 48 && tecla <= 57) || tecla == 8 || tecla == 9;
}
function getTeclaCrossBrowser(event){
  var tecla = '';
  if (event.which) { // Firefox
    tecla = event.which;
  } else if (event.keyCode) { // IE
    tecla = event.keyCode;
  } else if (event.charCode) { // chrome
    tecla = event.charCode;
  } 
  return tecla;
}
function somenteNumeroOnkeypress(event){
  var tecla = getTeclaCrossBrowser(event);
  var retorno = isCharPermitido(tecla);
  try {event.returnValue = retorno;} catch(ex) { }
  return retorno;
}
//por desencargo, esta ser· usada no onblur
function soNumero(campo){
var vr = campo.value;
    vr = vr.replace(/\D/g,"");
    campo.value = vr;
}
