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

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

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

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

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

	$("#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",
		     email: {
		       required: true,
		       email: true,
		       remote: httpRoot+"/gestaoFLP/util/verificaEmail.php"
		     },
		     cpf: {required: true, cpf: true, remote: httpRoot+"/gestaoFLP/util/verificaCPF.php"},
		     cpfConjuge: {required: function(element) {
		          return ($("#estadoCivil option:selected").text() == 'Casado');
		      },
		      cpfConjuge: true,
		      remote: httpRoot+"gestaoFLP/util/verificaCPF.php"},
		      conjuge: {required: function(element) {
			          return ($("#estadoCivil option:selected").text() == 'Casado');
			      }
			  },
		     nascimento: {required: true, dataBR: true,maiorIdade: true},
		     nomePatrocinador: "required",
		     patrocinador: {required: true, rangelength:[12,12]},
		     associadoEm: {dataBR: true},
		     endereco: "required",
		     endNum: "required",
		     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.",
		     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 Distribuidor 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 Distribuidor 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.",
		    		      rangelength:"&raquo; O código FLP do seu Patrocinador é inválido."},
	    	  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.",
			  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 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: httpRoot+"/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']);
	} else {
		liberaEndereco();
	}
};

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


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