var user = liwe.module ( "user" );

user.events = {
	"login"  : null,
	"logout" : null
};

user._evt_login = function ()
{
	var res = false;

	if ( user.events [ 'login' ] ) res = user.events [ 'login' ] ();

	return false;
};

user.login_box = function ()
{
	var frm = new liwe.form.instance ( "user-login-form" );
	frm.text ( { label: "Login", name: "login", size: 30, maxlength: 50, mandatory: true, onkeydown: "user._key_down(event)" } );
	frm.password ( { label: "Password", name: "pwd", size: 30, maxlength: 30, mandatory: true, onkeydown: "user._key_down(event)" } );
	frm.button ( { value: "Accedi", onclick: "user._login()", 'class': 'green' } );
	frm.sep ();
	frm.descr ( "Hai dimenticato la password?" );
	frm.text ( { label: "Tua e-mail", name: "email", size: 30, maxlength: 50 } );
	frm.button ( { value: "Richiedi", onclick: "user._lost_password()", 'class': 'blue' } );
	frm.sep ();
	frm.descr ( "Registrazione nuovo utente" );
	frm.label ( { value: "&nbsp;<br />La registrazione a questo sito &egrave; totalmente gratuita!<br />&nbsp;<br />" } );
	frm.button ( { value: "Vuoi registrarti al sito? Clicca qui!", onclick: "user.registration()", 'class': 'yellow' } );
	if ( typeof ( social ) != 'undefined' )
	{
		social.facebook.cbacks [ 'login' ] = user._facebook_login;
		social.facebook.cbacks [ 'init' ] = user._facebook_init;
		frm.label ( { value: social.facebook.get_login () } );
	}

	//liwe.lightbox.easy ( "user-lightbox", "Accesso utente", 450, 300, -1, 100 );
	liwe.lightbox.easy ( "user-lightbox", "Accesso utente", 343, 350 );

	frm.set ( "user-lightbox" );

};


user.registration = function ()
{
	var frm = new liwe.form.instance ( "user-login-register" );
	
	frm.email ( { label: "Indirizzo e-mail", name: "email", size: 30, maxlength: 200, mandatory: true } );
	frm.password ( { label: "Password", name: "pwd", size: 30, maxlength: 30, mandatory: true } );
	frm.password ( { label: "Password (conferma)", name: "pwd2", size: 30, maxlength: 30, mandatory: true } );
	frm.button ( { value: "Registrati", onclick: "user._register()" } );

	frm.set ( "user-lightbox" );

};

user._register = function ()
{
	var frm = liwe.form.get ( "user-login-register" );
	var vals = frm.get_values ();

	if ( vals [ 'pwd' ] != vals [ 'pwd2' ] )
	{
		alert ( "Verifcare la password inserita" );
		return;
	}

	user.ajax ( { action: "user.ajax.login_exists", email: vals [ 'email' ] }, function ( v )
	{
		if ( v [ 'exists' ] )
		{
			alert ( "L'indirizzo di email inserito e' gia' presente nel nostro database." );
			return;
		}

		if ( ! vals [ 'login' ] ) vals [ 'login' ] = vals [ 'email' ];

		vals [ 'action' ] = 'user.ajax.register';
		user.ajax ( vals, function ( v ) 
		{
			alert ( "Utente creato con successo!" );
			liwe.lightbox.close ();
		} );
	} );
};

user.change_password = function ()
{
	var frm = new liwe.form.instance ( "user-change-pwd-form" );
	frm.password ( { label: "Password", name: "pwd", size: 30, maxlength: 30, mandatory: true } );
	frm.password ( { label: "Password (verifica)", name: "pwd2", size: 30, maxlength: 30, mandatory: true } );
	frm.button ( { value: "Accedi", onclick: "user._change_pwd()" } );

	liwe.lightbox.easy ( "user-lightbox", "Modifica password", 400, 300 );

	frm.set ( "user-lightbox" );
};

user._change_pwd = function ()
{
	var f = liwe.form.get ( "user-change-pwd-form" );
	var a;

	if ( ! f.check () ) return;

	a = f.get_values ();

	if ( a [ 'pwd' ] != a [ 'pwd2' ] ) 
	{
		alert ( "Le due password inserite non coincidono" );
		return;
	}

	liwe.AJAX.easy ( { action: "user.ajax.change_password", pwd: a [ 'pwd' ] }, function ( v )
		{
			alert ( "Password aggiornata!" );
			liwe.lightbox.close ();
		} );

};

user.logout = function ()
{
	liwe.AJAX.easy ( { action: "user.ajax.logout" }, user.events.logout );
};

user._login = function ()
{
	var f = liwe.form.get ( "user-login-form" );
	var a = f.get_values ();

	a [ 'action' ] = "user.ajax.login";

	liwe.AJAX.easy ( a, function ( v ) { 
		liwe.lightbox.close ();

		if ( user.events.login ) user.events.login ( v );
	} );
};

user._lost_password = function ()
{
	var f = liwe.form.get ( "user-login-form" );
	var email = f.get_value ( "email" );

	liwe.AJAX.easy ( { action: "user.ajax.lost_password", email: email }, function ( v )
		{
			alert ( "Una nuova password e' stata inviata all'indirizzo di email: " + email );
		} );
};

user._key_down = function ( e )
{
	e = e || window.event;

	if ( e.which == 13 || e.keyCode == 13 )
		user._login ();
};

user._facebook_login = function ( res )
{
	social.facebook.user_login ( function ( res )
	{
		if ( res.text != 'OK' )
		{
			alert ( res.text );
		}
		window.location.reload ();
	} );
};

user._facebook_init = function ()
{
	if ( social.facebook.is_logged () )
	{
		var data = social.facebook.get_user ();
		$ ( 'social-facebook-text', 'Login come ' + data.name );
	}
};

