
$().ready(function() {
	var radioTipo = 'input[name="tipo"]';
	var campoEmail = '#log-email';
	var campoSenha = '#log-senha';
	var formulario = '#form-login';
	var formRecupera = '#form-esqueci-senha';
	var labelEmail = formulario+' label[for="log-email"]';
	var labelSenha = formulario+' label[for="log-senha"]';
	var classeErro = 'Erro';
	// AUTO-FOCUS NO PRIMEIRO CAMPO DO FORMULARIO
	$('#log-email').focus();

	// FUNCAO QUE MOSTRA ERRO DE EMAIL NAO DISPONIVEL
	function mostraErroEmailNaoDisponivel(){
		var mensagem = 'Email já cadastrado';
		if($(labelEmail).children().length == '1'){
			$(labelEmail+' strong').html(mensagem);
			$(labelEmail+' strong').show();
		}else{
			$(labelEmail).append('<strong class="error" htmlfor="log-email" generated="true">'+mensagem+'</strong>');
			$(labelEmail+' strong').show();
		}
		
		$(labelEmail).next().addClass(classeErro);
		$('#log-senha').addClass(classeErro);
		$('#log-tipo-1').click();
		mostraSenha();
	}

	function showEsqueci(){
		$("#login").slideUp('slow');
		$("#esqueceu-senha").slideDown('slow');
	};
	function showLogin(){
		$("#esqueceu-senha").slideUp('slow');
		$("#login").slideDown('slow');
	};
	function escondeErroEmailNaoDisponivel(){
		$(labelEmail).child('strong').remove();
		$(labelEmail).next().removeClass(classeErro);
		$('#log-senha').removeClass(classeErro);
	}

	function mostraErroLoginInvalido(){
		var mensagem = 'Login incorreto';
		if($(labelSenha).children().length == '1'){
			$(labelSenha+' strong').html(mensagem);
			$(labelSenha+' strong').show();
		}else{
			$(labelSenha).append('<strong class="error" htmlfor="log-email" generated="true">'+mensagem+'</strong>');
			$(labelSenha+' strong').show();
		}
		
		if($(labelEmail).children().length == '1'){
			$(labelEmail+' strong').html(mensagem);
			$(labelEmail+' strong').show();
		}else{
			$(labelEmail).append('<strong class="error" htmlfor="log-email" generated="true">'+mensagem+'</strong>');
			$(labelEmail+' strong').show();
		}
		
		$(labelSenha).next().addClass(classeErro);
		$('#log-senha').addClass(classeErro);

		$(labelEmail).next().addClass(classeErro);
		$('#log-email').addClass(classeErro);


		$('#log-tipo-1').click();
	}

	function mostraEscondeSenha(){
		$('#form-login > fieldset > ul > li > div').slideToggle();
	}
	function mostraSenha(){
		$('#form-login > fieldset > ul > li > div').slideDown();
	}
	function escondeSenha(){
		$('#form-login > fieldset > ul > li > div').slideUp();
	}

	$(formulario).validate({
		rules: {
			email: {required: function(){return $('#log-tipo-2').is(':checked');}, email: true},
			senha: {required: function(){return $('#log-tipo-1').is(':checked');}}
		},
		messages: {
			email: {required: 'Informe seu email', email: 'Email inválido', remote: 'E-mail já cadastrado'},
			senha: {required: 'Informe uma senha', minlength: jQuery.format('Mínimo de {0} caracteres')}
		},
		highlight: function(element, errorClass){
			if(element.name != 'aceitoTermos'){
				$(element).addClass(classeErro);
				$(element).prev().addClass(classeErro);
			}
		},
		unhighlight: function(element, errorClass){
			$(element).removeClass(classeErro);
			$(element).prev().removeClass(classeErro);
		},
		errorPlacement: function(error, element){
			if(element.attr('name') == 'aceitoTermos'){
				error.appendTo(element.next());
			}else{
				error.appendTo(element.prev());
			}
		},
		errorElement: 'strong',
		submitHandler: function(form){
			// DESABILITA O BOTAO
			$('#form-login button').attr('disabled', true);
	
			$(form).ajaxSubmit({
				dataType: 'json',
				success: function(data){
					// HABILITA O BOTAO
					$('#form-login button').attr('disabled', false);
                    var goURL = '';
					if(data.resposta == 'logado'){
						// REDIRECIONA PARA A ULTIMA URL ACESSADA
                        if(data.ultimaURI == 'null'){
                            goURL = 'http://' + siteRaiz + 'home/';
                        }else if (data.ultimaURI.search('colecao') > 0){
							var pegaCor = readCookie('cookieCor');
						    goURL = data.ultimaURI;
							if(pegaCor != null && pegaCor != undefined){
							 	goURL += '#' + pegaCor;
							}
						}else{
						    goURL = data.ultimaURI;
                        }
						 //console.log(goURL);
                         window.location.href= goURL;
					}
                    else if(data.resposta == 'email-nao-disponivel'){
						mostraErroEmailNaoDisponivel();
					}else if(data.resposta == 'login-invalido'){
						mostraErroLoginInvalido();
					}else if(data.resposta ==  'redireciona-cadastro'){
						window.location.href='http'+siteHTTPS+'://'+siteRaiz+'cadastro-completo';
					}else if(data.resposta == 'usuario-suspenso'){
						$('#box-aviso-login').fadeIn('slow');
					}else if(data.resposta == 'cadastro-incompleto'){
					    $('#box-aviso-cadastro').fadeIn('slow');
					}else if (data.resposta == 'login-lista-negra') {
						$('#box-aviso-lista-negra-login').fadeIn('slow');
					}
				}
			});
		}
			
	});
	$('#box-aviso-login, #box-aviso-lista-negra-login').click(function(){
		$(this).fadeOut('slow') 
	});
	$('#box-aviso-cadastro').click(function(){ 
		$(this).fadeOut('slow') 
	});
	$(formRecupera).validate({
		rules: {
				email: {required: true, email: true},
				confirmarEmail: {required: true, email: true, equalTo: '#esq-email'}
		},
		messages: {
			email: {required: 'Informe seu email', email: 'Email inválido'},
			confirmarEmail: {required: 'Confirme seu email', email: 'Email inválido', equalTo: 'Informe o mesmo email'}
		},
		highlight: function(element, errorClass){
			if(element.name != 'aceitoTermos'){
				$(element).addClass(classeErro);
				$(element).prev().addClass(classeErro);
			}
		},
		unhighlight: function(element, errorClass){
			$(element).removeClass(classeErro);
			$(element).prev().removeClass(classeErro);
		},
		errorPlacement: function(error, element){
			if(element.attr('name') == 'aceitoTermos'){
				error.appendTo(element.next());
			}else{
				error.appendTo(element.prev());
			}
		},
		errorElement: 'strong',
		submitHandler: function(form){
			// DESABILITA O BOTAO
			$('#form-esqueci-senha button').attr('disabled', true);
		
			$(form).ajaxSubmit({
				dataType: 'json',
				success: function(data){
					// HABILITA O BOTAO
					$('#form-esqueci-senha button').attr('disabled', false);
					var html;
					html = "\n<h2>AVISO:</h2>";
					if(data.resposta == 'email-enviado'){
						html = html + "\n<p><br/>Verifique sua caixa de e-mails.  Foi enviada uma mensagem com informações de como você deve proceder para trocar a sua senha de acesso.<br/></p><p>Deseja efetuar o <a onclick=\"window.location.href=siteURL+'login'\" href=\"javascript:\" >Login</a>?<br/></p>";
					}else if(data.resposta == 'email-nao-enviado'){
						html = html + "\n<p><br/>Ocorreu um problema no envio do e-mail, tente novamente mais tarde.  <br/></p><br/><a onclick=\"window.location.href=siteURL+'login'\" href=\"javascript:\" >Tentar Novamente?</a>";
					}else if(data.resposta == 'email-nao-existente'){
						html = html + "\n<p><br/>O e-mail especificado não existe em nossa base de dados. <br/></p><br/><a onclick=\"window.location.href=siteURL+'login'\"  href=\"javascript:\" >Tentar Novamente?</a>";
					}else if(data.resposta == 'email-invalido'){
						html = html + "\n<p><br/>O e-mail especificado não é válido. <br/></p><br/><a onclick=\"window.location.href=siteURL+'login'\"  href=\"javascript:\" >Tentar Novamente?</a>";
					}
					html = html + "<form></form><div><div></div></div>";
					
					$("#esqueceu-senha").hide();
					$("#esqueceu-senha-resposta").show();
					//logar(html);
					$("#esqueceu-senha-resposta").html(html);
				}
			});
		}
		
	});

	$("#log-tipo-1").click(function(){
		mostraSenha();		
	});

	$("#log-tipo-2").click(function(){
		escondeSenha();		
	});

	$(formulario).submit(function(e){
		e.preventDefault();
	});

	$(formRecupera).submit(function(e){
		e.preventDefault();
	});
	
	$('.showLogin').click(function(e){
		e.preventDefault();
		$("#esqueceu-senha").slideUp('slow');
		$("#login").slideDown('slow');
		return false;
	});
	$('.showEsqueci').click(function(e){
		e.preventDefault();
		$("#login").slideUp('slow');
		var email = $("#log-email").val();
		
		if (email != '')
			$('#esq-email').val(email);
		$("#esqueceu-senha").slideDown('slow');
		return false;
	});

});


