jQuery().ready(function(){

// ------------------------------------------------------------------------------- //
// -- FORMULÁRIO DE CADASTRPO ---------------------------------------------------- //
	var Validar = $("#plugdados_widget_cadastro").validate({
		rules: {
			plugdados_widget_cadastro_nome				: {required: true},
			plugdados_widget_cadastro_email				: {required: true, email: true},
			plugdados_widget_cadastro_senha				: {required: true, minlength: 6},
			plugdados_widget_cadastro_confirma_senha	: {required: true, equalTo: "#plugdados_widget_cadastro_senha"}
		},
		messages: {
			plugdados_widget_cadastro_nome				: {required: "É necessário informar seu nome."},
			plugdados_widget_cadastro_email				: {required: "O cadastro necessita de um email.", email: "O email informado não é válido."},
			plugdados_widget_cadastro_senha				: {required: "Para se identificar, forneça uma senha.", minlength: "Esta senha é muito curta."},
			plugdados_widget_cadastro_confirma_senha	: {required: "Para evitar erros, redigite sua senha.", equalTo: "As senhas digitadas não são iguais."}
		}

	});
	
	function tratarResultado(responseText, statusText) {
		if(responseText.sucesso)
		{
			if(responseText.cadastro)
			{
				$("#plugdados_widget_usuario_painel_aviso").html("Cadastro efetuado com sucesso, aguarde enquanto o navegador é redirecionado.");
				document.location = responseText.destino;
			}
			else
			{
				$("#plugdados_widget_usuario_painel_aviso").html("Dados alterados com sucesso.");
				document.location = responseText.destino;
			}
		}
		else
		{
			if(responseText.captcha_incorreto)
			{
				data = new Date();
				atual = data.getHours()+data.getMinutes()+data.getSeconds();
				$("#img_captcha").attr('src',URL_JSON_VISITANTES+'?acao=captcha&date='+atual);
			}
			if(responseText.mensagem)
			{
				$("#plugdados_widget_usuario_painel_aviso").html(responseText.mensagem);
			}
			else
			{
				$("#plugdados_widget_usuario_painel_aviso").html("Ocorreu um erro inesperado. Já fomos informados para que possamos corrigir.");
			}
		}
		jQuery.flash.hide();
	}
	
	function validar(formData, jqForm, options) {
		var valido = $(jqForm).valid();
		if(valido)
		{
			jQuery.flash.carregando();
			return true;
		}
		else
		{
			return false;
		}
	}
	
	var optionsAjaxForm = { 
		beforeSubmit: validar,
		success: tratarResultado
	};
	$("#plugdados_widget_cadastro").ajaxForm(optionsAjaxForm);
	
	
// ------------------------------------------------------------------------------- //
// -- FORMULÁRIO DE CADASTRPO ---------------------------------------------------- //
	var Validar = $("#plugdados_widget_edicao").validate({
		rules: {
			plugdados_widget_edicao_nome				: {required: true},
			plugdados_widget_edicao_senha				: {minlength: 6},
			plugdados_widget_edicao_confirma_senha	: {equalTo: "#plugdados_widget_edicao_senha"}
		},
		messages: {
			plugdados_widget_edicao_nome				: {required: "É necessário informar seu nome."},
			plugdados_widget_edicao_senha				: {minlength: "Esta senha é muito curta."},
			plugdados_widget_edicao_confirma_senha	: {equalTo: "As senhas digitadas não são iguais."}
		}

	});
	
	function validarAlteracao(formData, jqForm, options) {
		var valido = $("#plugdados_widget_edicao").valid();
		if(valido)
		{
			jQuery.flash.carregando();
			return true;
		}
		else
		{
			return false;
		}
	}
	
	var optionsAjaxFormAlterar = { 
		beforeSubmit: validarAlteracao,
		success: tratarResultado
	};
	$("#plugdados_widget_edicao").ajaxForm(optionsAjaxFormAlterar);
	
	
	
	
// ------------------------------------------------------------------------------- //
// -- FORMULÁRIO DE LOGIN -------------------------------------------------------- //
	var ValidarLogin = $("#plugdados_widget_login").validate({
		rules: {
			plugdados_widget_login_email				: {required: true, email: true},
			plugdados_widget_login_senha				: {required: true}
		},
		messages: {
			plugdados_widget_login_email				: {required: "Para se identificar, informe seu email.", email: "O email informado não é válido."},
			plugdados_widget_login_senha				: {required: "Não foi informado nenhuma senha."}
		}
		,
		highlight: function(error, element) {
			$("div#plugdados_widget_usuario_painel_aviso").parent().addClass('widget_usuario_painel_dados_incorretos');
	   },
	  
	   unhighlight: function(error, element) {
			$("div#plugdados_widget_usuario_painel_aviso").parent().removeClass('widget_usuario_painel_dados_incorretos');
	   }
	});
	function validarLogin(formData, jqForm, options) {
		var valido = $("#plugdados_widget_login").valid();
		if(valido)
		{
			jQuery.flash.carregando();
			return true;
		}
		else
		{
			return false;
		}
	}
	
	function verificarLogin(responseText, statusText)
	{ 
		
		$("#plugdados_widget_login input[name=plugdados_widget_login_recuperar]").val('');
		if(responseText.sucesso)
		{
			
			if(responseText.login)
			{
				$("#plugdados_widget_usuario_painel_aviso").html("Autenticação realizada com sucesso, aguarde enquanto o navegador é redirecionado.");
				document.location = responseText.destino;
			}else if(responseText.senha)
				$("#plugdados_widget_usuario_painel_aviso").html("Uma nova senha foi enviada para o seu e-mail.");
		}
		else
		{
			
			if(responseText.erro)
				$("#plugdados_widget_usuario_painel_aviso").html("Ocorreu um erro inesperado. Já fomos informados para que possamos corrigir");
			else if(responseText.desconhecido)
			{
				
				//Melhor não definir se o email está¡ desativado ou não para evitar ataques brutal force.
				$("#plugdados_widget_usuario_painel_aviso").html("Endereço de e-mail não cadastrado ou conta desativada.");
				$("div#plugdados_widget_usuario_painel_aviso").parent().addClass('widget_usuario_painel_usuario_senha_invalida');
				
			}
			else
			{	
				$("#plugdados_widget_usuario_painel_aviso").html("Endereço de e-mail não cadastrado ou senha inválida (ou conta desativada).");
				$("div#plugdados_widget_usuario_painel_aviso").parent().addClass('widget_usuario_painel_usuario_senha_invalida');
			}
		}
	}
	
	var optionsAjaxFormLogin = { 
		beforeSubmit: validarLogin,
		success: verificarLogin
	};

	$("#plugdados_widget_login").ajaxForm(optionsAjaxFormLogin);
	
	$("#plugdados_widget_recuperar_senha").click(function(){
		$("#plugdados_widget_login_senha").val('******');
		if($("#plugdados_widget_login").valid())
		{
			if(confirm("Uma nova senha será gerada automaticamente e enviada para seu e-mail. \nGostaria realmente de gerar uma nova senha?"))
			{
				$("#plugdados_widget_login input[name=plugdados_widget_login_recuperar]").val('sim');
				$("#plugdados_widget_login").submit();
				
			}
		}
	});
	
});