﻿
function CreateSession(signInResponse)
{
	var playerAuthentication = signInResponse.Authentication;
	
	CreateCookie("AuthenticationToken", playerAuthentication.AuthenticationToken, 7);

	var displayName = playerAuthentication.Player.Email;	
	if(playerAuthentication.Player.FirstName != null && playerAuthentication.Player.FirstName != "")
	{
		displayName = playerAuthentication.Player.FirstName;
	}

	displayName = signInResponse.GamerName;

	CreateCookie("DisplayName", displayName, 7);
	CreateCookie("PlayerName", signInResponse.PlayerName, 7);
	CreateCookie("PlayerId", signInResponse.PlayerId, 7);
	CreateCookie("PlayerRole", signInResponse.PlayerRoleName, 7);
}

function ExpireSession()
{
	EraseCookie("AuthenticationToken");
	EraseCookie("DisplayName");
	EraseCookie("PlayerName");
	EraseCookie("PlayerId");
	EraseCookie("PlayerRole");
}

function HasValidSession()
{
	var sessionId = ReadCookie("AuthenticationToken");
	
	return sessionId != null;
}

function CreateCookie(name, value, days) 
{
	var expires = "";
	
	if (days != null) 
	{
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		expires = "; expires=" + date.toUTCString();
	}
	
	document.cookie = name + "=" + value + expires + "; path=/";
}

function ReadCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');

	for(var i = 0;i < ca.length;i++) 
	{
		var c = ca[i];
		while (c.charAt(0) == ' ')
		{
			c = c.substring(1, c.length);
		}
		
		if (c.indexOf(nameEQ) == 0)
		{
			return c.substring(nameEQ.length, c.length);
		}
	}
	
	return null;
}

function EraseCookie(name) 
{
	CreateCookie(name, "", -1);
}

