/**
 * User class
 */

var User = new User();

function User() {
	this.data = {};
	this.load = User_load;
	this.login = User_login;
	this.loginWithFacebook = User_loginWithFacebook;
	this.logout = User_logout;
	this.logoutFacebook = User_logoutFacebook;
}

function User_load() {
	var data = {};
	var query = new Object();
	query.func = 'get';
	$.getJSON('user.php', {
		q : JSON.stringify(query)
	}, function(data) {
		User.data = data;
	});
	return true;
}

function User_login(email, pass) {
	var query = new Object();
	query.func = 'login';
	query.email = email;
	query.hash = MD5(pass + ":" + email);
	$.getJSON('user.php', {
		q : JSON.stringify(query)
	}, function(data) {
		if (data.result) {
			setTimeout("window.location.reload();",1200);
			$("#loginFormContainer").fadeOut(1000);
		} else {
			console.log(data);
		}
		var dialog = new DialogInterface();
		dialog.modalMessage("msg", data.title, data.content);
		dialog.timeredDestroy("auto");
	});
}
function User_logout() {
	var query = new Object();
	query.func = 'logout';
	$.getJSON('user.php', {
		q : JSON.stringify(query)
	}, function(data) {
		if (data.result) {
			User.load();
			User.logoutFacebook();
		} else {
			console.log(data);
		}
		var dialog = new DialogInterface();
		dialog.modalMessage("msg", data.title, data.content);
		dialog.timeredDestroy(3000);
		setTimeout("window.location.href=\"index.php\";",3500);
	});
}
function User_logoutFacebook() {
	FB.getLoginStatus(function(response) {
		if (response.session) {
			FB.logout();
		}
	});
}
function User_loginWithFacebook() {
	var query = new Object();
	query.func = 'getFacebookLoginURL';
	$.getJSON('user.php', {
		q : JSON.stringify(query)
	}, function(data) {
		if (data.result) {
			window.location.href = data.content;
		}
	});
}

