$(function() {
		   
	$.fn.login = function(area) {
		
		var sombra = '<div id="shadow"></div>';
		
		var form = '<div id="formLogin">';
		form	+=		'<a href="" title="" class="btLoginFechar">Fechar</a>';
		form	+=		'<form id="form_login">';
		form	+=			'<fieldset>	';
		form	+=				'<em>/ '+ area +'</em>';
		form	+=				'<span class="fixBg username"><input type="text" name="username" class="username required email" /></span>';
		form	+=				'<span class="fixBg pass"><input type="password" name="password" class="pass required" /></span>';
		form	+=				'<input type="hidden" name="area" value="'+ area +'" />';
		form	+=				'<input type="submit" value="" class="submit" /><br />';
		form	+=				'<a class="topico_link" href="#" id="esqueci_senha_bt">Esqueci minha senha</a>';
		form	+=		 	'</fieldset>';
		form	+=		'</form>';
		form	+=	'</div>';
		
		$('body').append(sombra);
		$('body').append(form);
		
		$('#shadow').animate({ 'opacity' : .55}, 'fast');
		$('#formLogin').animate({ 'opacity' : 1}, 'fast');
		
		$('.btLoginFechar').click(function() {
			$('#shadow').animate({ 'opacity' : 0}, 'fast', function() { $("#shadow").remove(); });
			$('#formLogin').animate({ 'opacity' : 0}, 'fast', function() { $("#formLogin").remove(); });
			return false;
		})
		
		$('#shadow').click(function() {
			$('#shadow').animate({ 'opacity' : 0}, 'fast', function() { $("#shadow").remove(); });
			$('#formLogin').animate({ 'opacity' : 0}, 'fast', function() { $("#formLogin").remove(); });
			return false;
		})
		
		
		applyLoginForm("form_login");
		
		$('#esqueci_senha_bt').click(function() {
			applyEsqueciSenha("formLogin","form_esqueci_senha",false,true);
			return false;
		});

		
		
	}
	
	$('a[title="Login Cliente"]').click(function() {
		$(this).parent().login('Cliente');	
		return false;
	});
	
	$('a[title="Login Confraria"]').click(function() {
		$(this).parent().login('Confraria de Cinema');	
		return false;
	});
	
	
		
	
})


function applyLoginForm(formId) {
	
	$('#'+formId+' input:username').click(function() {
		$('#'+formId+' label.error').remove();
		$('#'+formId+' div.error').remove();
	});
	
	$('#'+formId+' input:password').click(function() {
		$('#'+formId+' label.error').remove();
		$('#'+formId+' div.error').remove();
	});
	
	$("#"+formId).validate ( {
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'Um campo obrigatório não foi preenchido'
					: errors + ' campos obrigatórios não foram preenchidos';
				//$("div.error span").html(message);
				//$("div.error").show();
			} else {
				//$("div.error").hide();
			}
		},
		onkeyup: false,
		submitHandler: function() {
			$.post('/usuario/login.php', $("#"+formId).serialize(), function(data){ 
				var data_array = data.split('&');
				if (data_array[0]=='ok=1') {
					document.location = unescape(data_array[2].split('=')[1]);
				} else {
					var msg = unescape(data_array[1].split('=')[1]);
					$('<div class="error">'+ msg.replace(/\+/g,' ') + '<br /></div>').appendTo('#'+formId+' fieldset'); 
				}
			} );
		},
		messages: {
			username: {
				required: " ",
				email: "Digite um e-mail v&aacute;lido."
			}
		}
	});
}


function applyEsqueciSenha(idToLoad,formId,doPost,hasFechar) {
	
	
	if(doPost) vars = $("#"+formId).serialize();
	else vars = {};
	
	$("#"+idToLoad).html("<p>Carregando...</p>");
	
	hasFechar = (hasFechar) ? 1 : 0;
	
	$.post('/usuario/esqueci-senha.php?formId='+formId+"&hasFechar="+hasFechar, vars, function(data){
		$("#"+idToLoad).html(data);
		
		if (hasFechar) {
			$('.btLoginFechar').click(function() {
				$('#shadow').animate({ 'opacity' : 0}, 'fast', function() { $("#shadow").remove(); });
				$('#formLogin').animate({ 'opacity' : 0}, 'fast', function() { $("#formLogin").remove(); });
				return false;
			})
		}
		$("#"+formId).validate ( {
			invalidHandler: function(e, validator) {
				var errors = validator.numberOfInvalids();
				if (errors) {
					var message = errors == 1
						? 'Um campo obrigatório não foi preenchido'
						: errors + ' campos obrigatórios não foram preenchidos';
				} 
			},
			onkeyup: false,
			submitHandler: function() {
				applyEsqueciSenha(idToLoad,formId,true,(hasFechar==1));
			},
			messages: {
				username: {
					required: " ",
					email: "Digite um e-mail v&aacute;lido."
				}
			}
		});
		
		}
	);
}