/**
 * File: apme.login.js
 * Author: João Fonseca (j.fonseca@netcabo.pt)
 */
var apme = apme || {};

apme.login = {
	loggedIn : false,
	loggedInEmail : '',
	checkLogin : function() {
		var that = this;
		$.ajax({
			url : 'login.php?check=1',
			success : function(email) {
				that.loggedIn = (email != '');
				that.loggedInEmail = email;
				that.updateButtons();

			}
		});
	},
	updateButtons : function() {
		if (this.loggedIn) {
			$('#loggedInEmail').html('&rArr;&nbsp;'+this.loggedInEmail);
			$('[data-show-loggedin=false]').hide();
			$('[data-show-loggedin=true]').show();
		} else {
			$('[data-show-loggedout=false]').hide();
			$('[data-show-loggedout=true]').show();
		}
	},
	loginBox : function() {
		apme.visuals.createOverlay();
		apme.visuals.createBox('loginbox_container');
		$('#loginbox_container').load("login.php");
	},
	closeLoginBox : function() {
		$('#loginbox_container').remove();
		apme.visuals.deleteOverlay();
	},
	login : function() {
		var that = this;
		var logindata = {
			"email" : $("#email").val(),
			"password" : $("#password").val(),
			"setcookie" : $("#setcookie").attr("checked")
		};
		$("#loginbox_container").load("login.php", logindata, function() {
			if ($("#loginbox_container").html() == 'loginOK') {
				that.loggedIn = true;
				apme.content.update();
				that.closeLoginBox();
				that.checkLogin();
			}
		});
		return false;
	},
	logout : function() {
		var that = this;
		apme.visuals.createOverlay();
		$.ajax({
			url : 'login.php?logout=1',
			success : function() {
				apme.login.checkLogin();
			}
		});
		apme.visuals.deleteOverlay();
	},
	initActions : function() {
		var that = this;
		$('#loginButton').live('click', that.loginBox);
		$('#logoutButton').live('click', that.logout);
		$('#loginbox #closebox a').live('click', that.closeLoginBox);
		$('#loginForm').live('submit', function(e){
			e.preventDefault();
			that.login();
			return false;
		});

	},
	init : function() {
		this.checkLogin();
		this.initActions();
	}
};

