$(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');
/*
	$("#selEstado").load("gestaoFLP/util/estado.php?estado="+estado,estadoCarregado);


*/
	//$("#selBanco").load("gestaoFLP/util/banco.php?banco="+banco);
	
	$('#endNum').keypress(function(event) {
	    return somenteNumeroOnkeypress(event);
	  });
	

	 $('#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;
			}
			
		});
	

	$("#estadoSl").bind('change',function() {
		if ($("#estadoSl option:selected").html() != 'UF'){
			$("#estado").val('');
			$("#cidade").val('');
			$("#estado").val($("#estadoSl option:selected").html());
			$("#cidadeSelect").load(httpRoot+'/gestaoFLP/util/cidadeVolpe.php?uf=' + $("#estado").val());
		}else{
			$("#estado").val('');
			$("#cidade").val('');
		}
	});
	
	$("#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('');
		}
	});

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

	$('#loading').ajaxStart(function() {
		$(this).fadeIn();
	}).ajaxStop(function() {
		$(this).fadeOut();
	});
	//$("#patrocinador").bind('blur',obterPatrocinador);

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

	$.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.");
	$.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.");

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

		$.validator.addMethod("verificaBloqueio", function(value, element, params){
			var result = verificaBloqueioPatrocinador(element); 
			return (params == eval(result)); 
		});
	
	$("#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: httpRoot+"/gestaoFLP/util/verificaEmail.php"
		     },
		     cpf: {
		    	 required: true, 
		    	 cpf: true, 
		    	 remote: httpRoot+"/gestaoFLP/util/verificaCPFnovo.php"},
		     cpfConjuge: {required: function(element) {
		          return ($("#estadoCivil option:selected").text() == 'Casado');
		      },
		      cpfConjuge: true,
		      remote: httpRoot+"/gestaoFLP/util/verificaCPFnovo.php"},
		      conjuge: {required: function(element) {
			          return ($("#estadoCivil option:selected").text() == 'Casado');
			      }
			  },
		     nascimento: {required: true, dataBR: true,maiorIdade: true},
		     nomePatrocinador: "required",
		     patrocinador: {
 	 			required: true, 
 	 			verificaBloqueio: true,
 	 			rangelength:[12,12],
 	 			remote:httpRoot+"/gestaoFLP/util/verificaPatrocinador.php"
 	 			             
 },
		     associadoEm: {dataBR: true},
		     endereco: "required",
		     endNum: {	required: true},
		     bairro: "required",
		     cidade: "required",
		     estado: "required",
		     senha: {required: true, minlength: 4},
		     senhaConf: {required: true, equalTo: "#senha"},
		     contrato: "required",
		     banco: "reqBanco",
		     agencia: {required: function(element) {
						           return ($("#conta").val() != '' || $("#banco option:selected").html() != 'Selecione o banco');
						       }
		     },
		     conta: {required: function(element) {
					           return ($("#conta").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."
		     },
		     cpf: {required: "&raquo; Por favor, entre com o seu CPF.",
		    	   cpf: "&raquo; Esse CPF é inválido.",
		    	   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",
		    		      maiorIdade:"&raquo; Você deve ter acima de 18 anos."},
		      nomePatrocinador: "&raquo; O nome do seu Patrocinador é obrigatório.",
		      patrocinador: {required: "&raquo; Por favor, entre com o código FLP do seu Patrocinador.",
		    		    	  verificaBloqueio:"&raquo; Patrocinador Bloqueado.",
		    		    	  rangelength:"&raquo; O código FLP do seu Patrocinador é inválido.",
		    		    	  remote: "&raquo; O Empreendedor não está apto a patrocinar."},
	    	  associadoEm: {dataBR: "&raquo; Essa data de associação é inválida"},
	    	  endereco: "&raquo; Por favor, entre com o seu endereço.",
			  endNum: {required:"&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."},
	    	  contrato: "&raquo; Você precisa ler e aceitar os termos do contrato.",
	    	  banco: {reqBanco: "&raquo; Por favor, selecione qual é o seu banco."},
	    	  agencia: {required: "&raquo; Por favor entre com a sua agência."},
	    	  conta: {required: "&raquo; Por favor entre com a sua conta."},
	    	  tipo: {required: "&raquo; Por favor entre com o tipo de sua conta."}
		   }
		});

});


var localizaPatrocinador = function() {
	
	var cod = $("#patrocinador").html();
	if (cod == '') {
		cod = $("#patrocinador").val();
	} else {
		$("#patrocinador").val(cod);
	}

	if(cod.length == 12) {
		$.ajax({
			url: httpRoot+"/gestaoFLP/util/nomePatrocinador.php",
			type: "POST",
			data: {patrocinador: cod},
			dataType: 'json',
			success: preenchePatrocinador
		});
	}

};

var preenchePatrocinador = function(dados) {
	//console.debug(dados);
	if(dados != false && dados['DS_NOME'] != '') {
		$("#nomePatrocinador").val(dados['DS_NOME']+' '+dados['DS_SOBRENOME']);
	} else {
		$("#nomePatrocinador").val(' ');
		
	}
};



var estadoCarregado = function () {
	$("#estado").bind('change',function(){
		var estado = $(this).val();
		$("#selCidade").load(httpRoot+"/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: httpRoot+"/gestaoFLP/util/cep.php",
		type: "POST",
		data: {cep: cep},
		dataType: 'json',
		success: preencheEndereco
	});
};

/*var obterPatrocinador = function() {
	var patrocinador = $("#patrocinador").val();

	$.ajax({
		url: "gestaoFLP/util/aptoPatrocinar.php",
		type: "POST",
		data: {patrocinador: patrocinador},
		dataType: 'json',
		success: preenchePatrocinador,
		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();
	$("#estado").val('');
	$("#cidade").val('');
};
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;
	}

	
/*var preenchePatrocinador = function(dados) {
	//console.debug(dados);
	if(dados != false && dados['nome'] != '') {
		$("#msgErroPatrocinio").hide();
		$("#nomePatrocinador").val(dados['nome']);
		$("#escondeDados").show();
	} else {
		$("#msgErroPatrocinio").show();
		$("#nomePatrocinador").val('');
		$("#escondeDados").hide();
	}
};*/
