/*
 * inizializza la pagina di log-in
 */
function login_init()
{
	//login interno
	var LOGIN_URL = HOME_URL+'/authentication/skoAuth/';
	$("#submit_login").bind('click',
		function()
		{
			var params = {'username':$("#username").val(),'password':encrypt($("#password").val())};
			var callbacks = {'success':'login_success','error':'login_error'};
			AJAXcall(LOGIN_URL,params,callbacks,CONTENT_TYPE_JSON);
		}
	);

	//login facebook
	$("#facebook_login").bind('click',function(){FB.login(function(response){facebook_login(response);},{perms:'publish_stream,email,user_status,user_website'}); return false;});
}

/*
 * salva i dati revuperati da facebook
 */
function saveFBData(response)
{
	if(response)
	{
		
		var query = FB.Data.query('select name, username, pic_square, email from user where uid={0}', response.id);		
		
		//oggetto contenete i dati di facebook
		var userdata = {uid:'',name:'',pic:'',username:'',email:''};
		
		//oggetto contenente le funzioni callback
		var callbacks = {'success':'login_success','error':'login_error'};
	
		query.wait(function(rows)
		{		
			userdata.uid		= response.id,
			userdata.name		= rows[0].name;
			userdata.pic		= rows[0].pic_square;
			if(rows[0].username === undefined)
				userdata.username = false;
			else
				userdata.username	= rows[0].username;
			userdata.email		= rows[0].email;
			
			AJAXcall(HOME_URL+'/authentication/fbAuth',userdata,callbacks,CONTENT_TYPE_JSON);
		});
		
		
	}
	else
	{
		alert('facebook login failed');
	}
}

/*
 * esegue il log-in con i dati di facebook
 */
function facebook_login(response)
{
	if(response.session)
	{
		//recupero i dati da facebook
		FB.api('/me',function(response){saveFBData(response);});
	}
	else
	{
		alert('facebook login failed');
	}
}

/*
 * in caso di login andato a buon fine
 * 
 * @param
 * 
 */
function login_success(data)
{
	if(data.logged)
	{
		if(!data.admin)
			redirect(HOME_URL);
		else
			redirect(HOME_URL+'/admin/');
	}
	else
	{
		alert('dati errati');
	}
}

/*
 * in caso di login con errore
 * 
 * @param
 * 
 */
function login_error()
{
	alert('error');
}

/*
 * esegue il log-out
 */
function skoLogout()
{
	var callbacks = {'success':'logout_success','error':'logout_error'};
	AJAXcall(HOME_URL+'/authentication/logout',{},callbacks,CONTENT_TYPE_JSON);
}

/*
 * in caso di log-out senza errori
 */
function logout_success(data)
{
	if(!data.logged)
	{
		redirect(HOME_URL);
	}
	else
	{
		alert('errore');
		redirect(HOME_URL);
	}	
}

/*
 * in caso di log-out con errori
 */
function logout_error()
{
	alert('error');
	redirect(HOME_URL);
}