// Classe SSOLight version Javascript
function SSOLight(prefixName)
{
	if (!prefixName)		prefixName = '';
	SSOLight.setPrefix(prefixName);

	SSOLight.Cookies = SSOLight.getAllCookies();
}

SSOLight.Configure = function()
{
	var Error = false;

	if (SSOLight.getPrefix() == '')
	{
		SSOLight.displayError('Aucun préfixe défini');
		Error = true;
	}

	if (!SSOLight.Cookies)
	{
		Error = true;
	}
	
	return !Error;
}

SSOLight.isConnected = function() 
{
	if (!SSOLight.Configure()) return false;

	var SSOData	= SSOLight.getData('SSO');
	var SessionData	= SSOLight.getData('SESSION');

	if ((SessionData == false) || (SSOData == false)) return false;

	var id_sso	= SSOData['Infos']['id_sso'];
	var session	= SessionData;

	if (id_sso && session)
		return true;

	return false;
}

// Renvoie un tableau contenant les données liées à un module
SSOLight.getData = function(moduleName) 
{
	if (!SSOLight.Configure()) return false;

	if (SSOLight.Cookies[moduleName])
		return SSOLight.Cookies[moduleName];

	return false;
}

// Définis le préfixe de cookie utilisé
SSOLight.setPrefix = function(prefixName)
{
	SSOLight.CookiePrefix = prefixName;
}

// Renvoie le préfixe des cookies utilisé
SSOLight.getPrefix = function()
{
	return SSOLight.CookiePrefix;
}

// Affiche une erreur via une alerte
SSOLight.displayError = function(errMessage)
{
	alert('Erreur SSOLight Javascript : <' + errMessage + '>.');
	return false;
}

SSOLight.getAllCookies = function()
{
	var cookies = { };

	if (document.cookie && document.cookie != '') 
	{
		var split = document.cookie.split(';');

		for (var i = 0; i < split.length; i++) 
		{
			var name_value = split[i].split("=");

			name_value[0] = name_value[0].replace(/^ /, '');

			if (name_value[0].substr(0, SSOLight.getPrefix().length + 1) == SSOLight.getPrefix() + '_')
			{
				var new_name  = name_value[0].substr(SSOLight.getPrefix().length + 1, name_value[0].length);
				var new_value = decodeURIComponent(name_value[1]);

				if (new_name.substr(0, 4) == 'SSO_')
				{
					new_name = 'SSO';
				}

				if (new_name != 'SESSION')
				{
					new_value = SSOLight.JSONDecode(new_value);
				}

				cookies[new_name] = new_value;
			}
		}
	}

	return cookies;
}

SSOLight.JSONDecode = function(data)
{
	return eval("(" + data + ")");
}

