

var User = new Class({
	logged : false,
	list_rc_order : { col : 'date', type : 'desc'},
	
	initialize : function()
	{
		this.isLogged();
	},
	
	isLogged : function()
	{
		var l = this;
		new Ajax(MODULE_DIR + 'user/xValid.php?actions=is_logged', 
		{
			onSuccess : function()
			{ 
				l.setLogged(this.response.text == 1);
			}
		}).request();
	},	
	
	setLogged : function(logged)
	{
		this.logged = logged;
		this.showMenu();
		$('lbl_user').setText(logged ? 'Compte' : 'Connexion');
		$('a_user').href = logged ? 'javascript:app.user.showHome();' : 'javascript:app.user.showLogin();';
	},
	
	logout : function()
	{
		new Ajax(MODULE_DIR + 'user/xValid.php?actions=logout', 
		{
			onSuccess : function()
			{ 
				app.user.setLogged(false);
				app.rc.showConvert();
			}
		}).request();
	},
	
	showLogin : function()
	{
		app.Highlight('user');
		$('menu').empty();
		app.load('user', { actions : 'show_login' });
	},
	
	sendLogin : function(e)
	{
		new Event(e).stop();
		
		$('form_login').send({
			onSuccess : function()
			{ 
			 	$$('.error').empty();
				var xml = new XML(this.response.xml);
				
				if(!xml || xml.error)
					return alert(this.response.text);
					
				if(xml.ParseErrors())
					return;
				
				app.user.setLogged(true);
				app.user.showHome();				
			}
		});
	},
	
	showRegister : function()
	{
		app.Highlight('user');
		$('menu').empty();
		app.load('user', { actions : 'show_register' });
	},
	
	sendRegister : function(e)
	{
		$('form_register').send({
			update : $('valid'),
			onSuccess : function()
			{ 
				$$('.error').empty();
				var xml = new XML(this.response.xml);
				
				if(!xml || xml.error)
					return alert(this.response.text);
					
				if(xml.ParseErrors())
					return;
				
				app.user.setLogged(true);
				app.user.showHome();				
			}
		});
	},
	
	showMenu : function()
	{
		var div = $('logged_in');
		if(this.logged)
			new Ajax(MODULE_DIR + 'user/menu.php', { update : div }).request();
		else
			div.empty();
	},
	
	showHome : function()
	{
		app.Highlight('user');
		app.load('user', {actions : 'show_home' });
	},
	
	showListeRC : function(order)
	{
		app.Highlight('user');
		$('menu').empty();
		if(order)
		{
			type = 'desc';
			if(order == this.list_rc_order.col)
				type = this.list_rc_order.type == 'asc' ? 'desc' : 'asc';
			this.list_rc_order = { col : order, type : type };
		}

		app.load('user', {actions : 'list_rc', order : this.list_rc_order.col, type :  this.list_rc_order.type });
	},
		
	
	deleteRC : function(id)
	{
		if(!confirm('Etes vous sur de vouloir supprimer ce rapport?'))
			return;
			
		new Ajax(MODULE_DIR + 'user/xValid.php?actions=delete_rc&rc_id=' + id, 
		{ 
			onSuccess : function() 
			{ 
				alert(this.response.text);
				app.user.showListeRC();
			} 
		}).request();
	},
	
	
	saveRC : function(event)
	{
		if(event)
			new Event(event).stop();;
			
		var data = $('save_rc');
		
		new Ajax(MODULE_DIR + 'user/xValid.php?actions=save_rc', 
		{ 
			data: data,
			onSuccess : function()
			{
				var xml = new XML(this.response.xml);
				if(!xml || xml.error)
					alert(this.response.text);
				
				$('div_save_rc').setHTML(xml.getValue('content'));
			}
		}).request();
	}

});