﻿
RefreshPlayerFriends();

var magicClass = new Array();
magicClass.push("black");
magicClass.push("diabolic");
magicClass.push("sinister");
magicClass.push("wicked");
magicClass.push("loving");
magicClass.push("unholy");
magicClass.push("holy");

var magicType = new Array();
magicType.push("fireball");
magicType.push("lightning bolt");
magicType.push("energy blast");
magicType.push("disintegrating cloud");
magicType.push("poisionous vapor");
magicType.push("lava shower");
magicType.push("sparkling tear");
magicType.push("fluffy kitten");
magicType.push("scruffy puppy");
magicType.push("putrid goo");

var magicEffect = new Array();
magicEffect.push("extreme pain");
magicEffect.push("misery");
magicEffect.push("eternal agony");
magicEffect.push("anguish");
magicEffect.push("torture");
magicEffect.push("immoral torment");
magicEffect.push("discomfort");

function RefreshPlayerFriends()
{
    CommunityServices.GetPlayerFriends(1, null, null, EndGetPlayerFriends, null);
}

function EndGetPlayerFriends(response, state)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {
            var friendContainer = document.getElementById("friendContainer");
            ClearContainer(friendContainer);

            var numFriends = response.Friends.length;

            if (numFriends > 0)
            {
            	document.getElementById("noFriendsMessage").style.display = "none";
            	document.getElementById("allFriendsButton").style.display = "block";

                var i = 0;
                while (i < numFriends)
                {
                    //only show up to a max of 10 friends
                    if (i >= 10)
                    {
                        break;
                    }

                    var friendRow = document.createElement("div");
                    SetClass(friendRow, "friendRow");

                    var rowIndex = i + 2;
                    for (var j = i; j < rowIndex && j < numFriends; j++)
                    {
                        var friend = response.Friends[j];

                        var container = document.createElement("span");
                        if (j % 2 == 0)
                        {
                            SetClass(container, "evenFriend");
                        } else
                        {
                            SetClass(container, "oddFriend");
                        }
                        
                        var img = document.createElement("img");
                        SetClass(img, "friendImage");

                        if (friend.ProfileThumbnailUrl != null)
                        {
                            img.src = friend.ProfileThumbnailUrl;
                        }
                        else
                        {
                            img.src = NoImagePath;
                        }

                        img.width = 30;
                        img.height = 30;
                        img.alt = friend.PlayerName;

                        var a = document.createElement("a");
                        SetClass(a, "friendLink");
                        
                        if(friend.PlayerRoleName == "Admin")
						{
							AppendClass(a, "adminName");
						}
                        
                        a.appendChild(img);
                        a.innerHTML += ConstrainString(friend.PlayerName, 8);
                        a.title = friend.PlayerName;
                        a.target = "_top";
                        a.href = "playerProfile.htm?name=" + friend.PlayerName;
                        container.appendChild(a);

                        /* REMOVE FRIEND
                        container.appendChild(document.createElement("br"));
                        var removeLink = document.createElement("a");
                        removeLink.Friend = friend;
                        removeLink.innerHTML = "Remove Friend";
                        removeLink.href = "#";
                        removeLink.onclick = RemoveFriend;
                        container.appendChild(removeLink);
                        */
                        friendRow.appendChild(container);
                        friendContainer.appendChild(friendRow);

                        i++;
                    }
                }
            } else if (numFriends < 1)
            {
                document.getElementById("noFriendsMessage").style.display = "block";
                document.getElementById("allFriendsButton").style.display = "none";
            } else
            {
                HandleUnknownResult(response);
            }
        }
    }
}

function RemoveFriend(e)
{
    if (e == null)
    {
        e = window.event;
    }

    var friend = GetEventSource(e).Friend;

    CommunityServices.RemovePlayerFriend(friend.PlayerId, EndRemovePlayerFriend, friend);
}

function EndRemovePlayerFriend(response, friend)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {
            RefreshPlayerFriends();

            friend.Row.parentNode.removeChild(friend.Row);
        }
        else
        {
            HandleUnknownResult(response);
        }
    }
}

var PlayerSearchPage = 0;
var PlayerSearchResultSize = 10;

function ShowPlayerSearch()
{
	if(PlayerSearchPage == 0)
	{
		ChangePlayerSearchPage(1);
	}
	
    document.getElementById("popupCover").style.display = "block";
    document.getElementById("playerSearch").style.display = "block";
}

function ClosePlayerSearch()
{
    document.getElementById("popupCover").style.display = "none";
    document.getElementById("playerSearch").style.display = "none";
}

function ChangePlayerSearchPage(amount)
{
	if (PlayerSearchPage + amount > 0)
	{
		PlayerSearchPage += amount;

		SearchForPlayers();
	}
}

function StartPlayerSearch()
{
	PlayerSearchPage = 1;

	SearchForPlayers();
}

function SearchForPlayers()
{
    var playerName = document.getElementById("playerSearchPlayerName").value;
    var email = document.getElementById("playerSearchEmail").value;
    var fullName = document.getElementById("playerSearchFullName").value;

    ShowElement("playerSearchSpinner");

    CommunityServices.SearchForPlayers(PlayerSearchPage, playerName, email, fullName, EndSearchForPlayers, null);
}

function EndSearchForPlayers(response, state)
{
	HideElement("playerSearchSpinner");

	if (!HandleCommonResults(response))
	{
		if (IsSuccessResult(response))
		{
			if (PlayerSearchPage > 1 && response.SearchResults.length == 0)
			{
				PlayerSearchPage--;
				document.getElementById("playerSearchResultsNext").style.display = "none";

				return;
			}
			
			var resultsContainer = document.getElementById("playerSearchResultsContainer");
			var resultsLabel = document.getElementById("playerSearchResultsLabel");
			ClearContainer(resultsContainer);

			if (response.SearchResults.length > 0)
			{
				if (PlayerSearchPage == 1 && response.SearchResults.length < PlayerSearchResultSize)
				{
					var m = "match";
					if (response.SearchResults.length > 1)
					{
						m = "matches";
					}
					
					resultsLabel.innerHTML = response.SearchResults.length + " " + m + " found.<br/><br/>";
				}
				else
				{
					resultsLabel.innerHTML = "Viewing page " + PlayerSearchPage + "<br/><br/>";
				
				}
				

				for (var i = 0; i < response.SearchResults.length; i++)
				{
					var player = response.SearchResults[i];

					var playerRow = document.createElement("div");
					SetClass(playerRow, "playerSearchResultsContainerRow");

					var avatarImageLink = document.createElement("a");
					avatarImageLink.href = "playerProfile.htm?name=" + player.PlayerName;

					var avatarImage = document.createElement("img");
					SetClass(avatarImage, "playerSearchResultsContainerAvatar");
					avatarImage.alt = player.PlayerName;
					avatarImage.title = player.PlayerName;

					if (player.ProfileThumbnailUrl != null)
					{
						avatarImage.src = player.ProfileThumbnailUrl;
					}
					else
					{
						avatarImage.src = NoImagePath;
					}

					avatarImage.width = 30;
					avatarImage.height = 30;
					avatarImageLink.appendChild(avatarImage);
					playerRow.appendChild(avatarImageLink);

					var playerNameLabel = document.createElement("a");
					SetClass(playerNameLabel, "playerSearchResultsContainerPlayerName");
					
					if(player.PlayerRoleName == "Admin")
					{
						AppendClass(playerNameLabel, "adminName");
						
						var adminIcon = document.createElement("img");
						adminIcon.src = "images/themes/default/adminStar.png";
						adminIcon.style.verticalAlign = "middle";
						adminIcon.title = "WeMade Community Admin";
						adminIcon.style.width = 20;
						adminIcon.style.height = 20;
						playerRow.appendChild(adminIcon);						
					}
					
					playerNameLabel.target = "_top";
					playerNameLabel.href = "playerProfile.htm?name=" + player.PlayerName;
					playerNameLabel.innerHTML = player.PlayerName;
					playerRow.appendChild(playerNameLabel);

					var playerStatusLabel = document.createElement("div");
					SetClass(playerStatusLabel, "playerSearchResultsContainerPlayerStatus");
					playerStatusLabel.title = player.StatusMessage;
					
					var status = player.StatusMessage;
					if (status == null)
					{
						status = "";
					} else if (status.length > 50)
					{
						status = status.substr(0, 50) + "...";
					}

					SetInnerText(playerStatusLabel, status);
					playerRow.appendChild(playerStatusLabel);

					var addFriendButton = document.createElement("img");
					addFriendButton.Player = player;
					SetClass(addFriendButton, "playerSearchResultsContainerAddFriendButton");
					addFriendButton.src = "images/themes/" + getTheme() + "/button-friend-addnew.png";
					addFriendButton.onclick = AddFriend;
					addFriendButton.title = "Send " + player.PlayerName + " a Friend Request";
					addFriendButton.alt = "Send " + player.PlayerName + " a Friend Request";
					playerRow.appendChild(addFriendButton);

					var messageButton = document.createElement("img");
					messageButton.Player = player;
					SetClass(messageButton, "playerSearchResultsContainerMessageButton");
					messageButton.src = "images/themes/" + getTheme() + "/button-friend-message.png";
					messageButton.onclick = SendPlayerMessage;
					messageButton.title = "Send " + player.PlayerName + " a Message";
					messageButton.alt = "Send " + player.PlayerName + " a Message";
					playerRow.appendChild(messageButton);

					resultsContainer.appendChild(playerRow);
				}

				if (PlayerSearchPage > 1)
				{
					document.getElementById("playerSearchResultsPrevious").style.display = "inline";
				}
				else
				{
					document.getElementById("playerSearchResultsPrevious").style.display = "none";
				}

				/* add page nav buttons if enough results */
				if (response.SearchResults.length == PlayerSearchResultSize)
				{
					document.getElementById("playerSearchResultsNext").style.display = "inline";
				}
				else
				{
					document.getElementById("playerSearchResultsNext").style.display = "none";
				}
			}
			else
			{
				resultsLabel.innerHTML = "No matches found.";

				document.getElementById("playerSearchResultsPrevious").style.display = "none";
				document.getElementById("playerSearchResultsNext").style.display = "none";
			}
		}
		else
		{
			UnknownResult(response);
		}
	}
}

function SendPlayerMessage(e)
{
	if (e == null)
	{
		e = window.event;
	}

	var button = GetEventSource(e);
	var player = button.Player;

	location.href = "messaging.htm?composeTo=" + player.PlayerName;
}

function AddFriend(e)
{
    if (e == null)
    {
        e = window.event;
    }

    var link = GetEventSource(e);
    var player = link.Player;
    link.disabled = true;

    CommunityServices.RequestPlayerFriendship(player.PlayerName, null, EndAddFriend, link);
}

function EndAddFriend(response, link)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {
            alert("Friend request sent.");

            SearchForPlayers();
        }
        else if (response.Result == "SourceAndTargetSame")
        {
            alert("You can not add yourself as a friend.");
        }
        else if (response.Result == "RequestAlreadyExists")
        {
            var player = link.Player;

            alert("You already have a pending friend request with " + link.Player.PlayerName + ".");
        }
        else if (response.Result == "FriendshipAlreadyExists")
        {
            alert("You are already friends with " + link.Player.PlayerName + ".");
        }else
        {
            UnknownResult(response);
        }
    }

    link.disabled = false;
}

function ShowFriendRequests()
{
    CurrentFriendRequestsPage = 0;
    ChangeFriendRequestsPage(1);
}

function CloseFriendRequests()
{
    document.getElementById("friendRequests").style.display = "none";
    document.getElementById("popupCover").style.display = "none";
}

var CurrentFriendRequestsPage = 0;

function ChangeFriendRequestsPage(amount)
{
    if (CurrentFriendRequestsPage + amount < 1)
    {
        return;
    }

    CurrentFriendRequestsPage += amount;

    CommunityServices.GetPlayerFriendRequests(EndGetFriendRequests, null);
}

function EndGetFriendRequests(response, state)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {          
            var receivedRequests = new Array();
            var sentRequests = new Array();

            for (var i = 0; i < response.Requests.length; i++)
            {
                var request = response.Requests[i];

                if (request.IsCurrentPlayerSender)
                {
                    sentRequests.push(request);
                }
                else
                {
                    receivedRequests.push(request);
                }
            }

            BuildReceivedRequests(receivedRequests);
            BuildSentRequests(sentRequests);

            document.getElementById("popupCover").style.display = "block";
            document.getElementById("friendRequests").style.display = "block";
        }
        else
        {
            UnknownResult(response);
        }
    }
}

var receivedRequestsInfo;

function BuildReceivedRequests(requests)
{
    var requestContainer = document.getElementById("friendRequestContainer");
    ClearContainer(requestContainer);

    var r = "requests";
    if (requests.length == 1)
    {
        r = "request";
    }

    FriendRequestCount = requests.length;

    receivedRequestsInfo = document.createElement("span");
    receivedRequestsInfo.innerHTML = "You have " + requests.length + " incoming friend " + r + "<br/><br/>";
    SetClass(receivedRequestsInfo, "popupInfo");
    requestContainer.appendChild(receivedRequestsInfo);

    document.getElementById("friendRequestResultsPrevious").style.display = "none";
    document.getElementById("friendRequestResultsNext").style.display = "none";

    for (var i = 0; i < requests.length; i++)
    {
        var request = requests[i];

        var requestRow = document.createElement("div");
        SetClass(requestRow, "friendRequestContainerRequestRow");
        requestContainer.appendChild(requestRow);

        request.RequestRow = requestRow;

        var playerImageLink = document.createElement("a");
        playerImageLink.href = "playerProfile.htm?name=" + request.SenderName;

        var playerImage = document.createElement("img");

        if (request.SenderImageUrl != null)
        {
            playerImage.src = request.SenderImageUrl;
        }
        else
        {
            playerImage.src = NoImagePath;
        }

        playerImage.width = 30;
        playerImage.height = 30;
        playerImage.alt = request.SenderName;
        playerImage.title = request.SenderName;
        SetClass(playerImage, "friendRequestContainerAvatar");
        playerImageLink.appendChild(playerImage);
        requestRow.appendChild(playerImageLink);

        var nameLink = document.createElement("a");
        SetClass(nameLink, "playerName");
        nameLink.target = "_top";
        nameLink.href = "playerProfile.htm?name=" + request.SenderName;
        nameLink.innerHTML = request.SenderName;
        requestRow.appendChild(nameLink);
        
        var friendStatusLabel = document.createElement("div");
		SetClass(friendStatusLabel, "allFriendsSearchResultsContainerPlayerStatus");
		friendStatusLabel.title = request.SenderStatusMessage;

		var status = request.SenderStatusMessage;
		if (status == null)
		{
			status = "";
		} else if (status.length > 50)
		{
			status = status.substr(0, 50) + "...";
		}

		SetInnerText(friendStatusLabel, status);
		requestRow.appendChild(friendStatusLabel);

        var approveButton = document.createElement("img");
        SetClass(approveButton, "friendRequestApproveButton");
        approveButton.src = "images/themes/" + getTheme() + "/button-friend-approve.png";
        approveButton.Request = request;
        approveButton.title = "Approve " + request.SenderName + " as your friend";
        approveButton.alt = "Approve " + request.SenderName + " as your friend";
        approveButton.onclick = ApproveRequest;
        requestRow.appendChild(approveButton);

        var ignoreButton = document.createElement("img");
        SetClass(ignoreButton, "friendRequestIgnoreButton");
        ignoreButton.src = "images/themes/" + getTheme() + "/button-friend-ignore.png";
        ignoreButton.Request = request;
        ignoreButton.title = "Ignore " + request.SenderName + "'s friendship request";
        ignoreButton.alt = "Ignore " + request.SenderName + "'s friendship request";
        ignoreButton.onclick = IgnoreRequest;
        requestRow.appendChild(ignoreButton);

        var blockButton = document.createElement("img");
        SetClass(blockButton, "friendRequestBlockButton");
        blockButton.src = "images/themes/" + getTheme() + "/button-friend-block-disabled.png";
        blockButton.Request = request;
        blockButton.title = "Block all friendship requests from " + request.SenderName;
        blockButton.alt = "Block all friendship requests from " + request.SenderName;
        blockButton.style.cursor = "default";
        //blockButton.onclick = BlockRequest;
        requestRow.appendChild(blockButton);

        /* add page nav buttons if enough results */
        if (requests.length > 0)
        {
            document.getElementById("friendRequestResultsPrevious").style.display = "inline";
            document.getElementById("friendRequestResultsNext").style.display = "inline";
        }
    }
}

function RemoveFriendRequest()
{
	PlayerStatus.FriendRequestCount--;

	var r = "requests";
	if (PlayerStatus.FriendRequestCount == 1)
	{
		r = "request";
	}

	receivedRequestsInfo.innerHTML = "You have " + PlayerStatus.FriendRequestCount + " incoming friend " + r + "<br/><br/>";

	document.getElementById("friendRequestCount").innerHTML = "(" + PlayerStatus.FriendRequestCount + ")";

	if (PlayerStatus.FriendRequestCount > 0)
	{
		document.getElementById("friendRequestsIcon").src = "images/themes/default/status-icon-friend-new.png";
	}
	else
	{
		document.getElementById("friendRequestsIcon").src = "images/themes/default/status-icon-friend.png";
	}
}

function ApproveRequest(e)
{
    if (e == null)
    {
        e = window.event;
    }

    var link = GetEventSource(e);
    var request = link.Request;

    CommunityServices.ApprovePlayerFriendRequest(request.SenderId, null, EndApprovePlayerFriendRequest, link);
}

function EndApprovePlayerFriendRequest(response, link)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {
            var requestRow = link.Request.RequestRow;
            requestRow.parentNode.removeChild(requestRow);

            RemoveFriendRequest();
            RefreshPlayerFriends();
        }
        else
        {
            UnknownResult(response);
        }
    }
}

function IgnoreRequest(e)
{
    if (e == null)
    {
        e = window.event;
    }

    var link = GetEventSource(e);
    var request = link.Request;

    CommunityServices.IgnorePlayerFriendRequest(request.SenderId, EndIgnoreRequest, link);
}

function EndIgnoreRequest(response, link)
{
    if (!HandleCommonResults(response))
    {
        if (IsSuccessResult(response))
        {
            var requestRow = link.Request.RequestRow;
            requestRow.parentNode.removeChild(requestRow);

            RemoveFriendRequest();
        }
        else
        {
            UnknownResult(response);
        }
    }
}

function BlockRequest(e)
{
    if (e == null)
    {
        e = window.event;
    }

    var link = GetEventSource(e);
    var request = link.Request;
}

function BuildSentRequests(requests)
{
    var requestContainer = document.getElementById("friendSentRequestContainer");
    SetClass(requestContainer, "popupInfoSmall");
    ClearContainer(requestContainer);

    var r = "requests pending confirmation";
    var f = "from ";
    if (requests.length == 1)
    {
        r = "request pending confirmation";
    }
    if (requests.length < 1)
    {
        r = "requests";
        f = "";
    }
    requestContainer.innerHTML = '<br/><img src="images/themes/' + getTheme() + '/button-info.png" class="inlineIconLeft" alt="Notice" title="Notice">';
    requestContainer.innerHTML += "You have " + requests.length + " outgoing friend " + r + " " + f;

    for (var i = 0; i < requests.length; i++)
    {
        var name = requests[i].RecipientName;
        if (i == 0 && requests.length > 1)
        {
        } else if (i < requests.length - 1)
        {
            name = ", " + name;
        } else
        {
            name = " and " + name;
        }
        requestContainer.innerHTML += name;
    }
}

var FriendSearchPage = 1;
var FriendSearch = null;
var FriendSearchSize = 10;

function ShowAllFriends()
{
	FriendSearchPage = 1;
	FriendSearch = null;
	document.getElementById("searchForFriend").value = "";

	SearchForFriend();
}

function ChangeAllFriendsPage(amount)
{
	if (FriendSearchPage + amount > 0)
	{
		FriendSearchPage += amount;

		CommunityServices.GetPlayerFriends(FriendSearchPage, null, FriendSearch, EndGetAllFriends, null);		
	}
}

function CloseAllFriends()
{
    document.getElementById("popupCover").style.display = "none";
    document.getElementById("allFriends").style.display = "none";
}

function EndGetAllFriends(response, state)
{
    if (!HandleCommonResults(response))
    {
    	if (IsSuccessResult(response))
    	{
    		if (FriendSearchPage > 1 && response.Friends.length == 0)
    		{
    			FriendSearchPage--;
    			document.getElementById("allFriendsResultsNext").style.display = "none";

    			return;
    		}

    		var friendContainer = document.getElementById("allFriendsSearchResultsContainer");
    		ClearContainer(friendContainer);

    		document.getElementById("allFriendsSearchResultsLabel").innerHTML = "<br/>";

    		for (var i = 0; i < response.Friends.length; i++)
    		{
    			var friend = response.Friends[i];

    			var friendRow = document.createElement("div");
    			SetClass(friendRow, "allFriendsSearchResultsContainerRow");

    			var avatarImageLink = document.createElement("a");
    			avatarImageLink.href = "playerProfile.htm?name=" + friend.PlayerName;

    			var avatarImage = document.createElement("img");
    			SetClass(avatarImage, "allFriendsSearchResultsContainerAvatar");
    			avatarImage.alt = friend.PlayerName;
    			avatarImage.title = friend.PlayerName;

    			if (friend.ProfileThumbnailUrl != null)
    			{
    				avatarImage.src = friend.ProfileThumbnailUrl;
    			}
    			else
    			{
    				avatarImage.src = NoImagePath;
    			}

    			avatarImage.width = 30;
    			avatarImage.height = 30;
    			avatarImageLink.appendChild(avatarImage);
    			friendRow.appendChild(avatarImageLink);

    			var friendNameLabel = document.createElement("a");
    			SetClass(friendNameLabel, "playerName");
    			
    			if(friend.PlayerRoleName == "Admin")
				{
					AppendClass(friendNameLabel, "adminName");
				}
    			
    			friendNameLabel.target = "_top";
    			friendNameLabel.href = "playerProfile.htm?name=" + friend.PlayerName;
    			friendNameLabel.innerHTML = friend.PlayerName;
    			friendRow.appendChild(friendNameLabel);

    			var friendStatusLabel = document.createElement("div");
    			SetClass(friendStatusLabel, "allFriendsSearchResultsContainerPlayerStatus");
    			friendStatusLabel.title = friend.StatusMessage;

    			var status = friend.StatusMessage;
    			if (status == null)
    			{
    				status = "";
    			} else if (status.length > 50)
    			{
    				status = status.substr(0, 50) + "...";
    			}

    			SetInnerText(friendStatusLabel, status);
    			friendRow.appendChild(friendStatusLabel);

    			friend.Row = friendRow;

    			var messageButton = document.createElement("img");
    			SetClass(messageButton, "allFriendsSearchResultsContainerMessageButton");
    			messageButton.Player = friend;
    			messageButton.src = "images/themes/" + getTheme() + "/button-friend-message.png";
    			messageButton.onclick = SendPlayerMessage;
    			messageButton.title = "Send " + friend.PlayerName + " a message";
    			messageButton.alt = "Send " + friend.PlayerName + " a message";
    			friendRow.appendChild(messageButton);

    			var pokeButton = document.createElement("img");
    			SetClass(pokeButton, "allFriendsSearchResultsContainerPokeButton");
    			pokeButton.src = "images/themes/" + getTheme() + "/button-friend-poke.png";
    			pokeButton.Friend = friend;
    			pokeButton.title = "Magically attack " + friend.PlayerName;
    			pokeButton.alt = "Magically attack " + friend.PlayerName;
    			pokeButton.onclick = function(e)
    			{
    				if(e == null)
    				{
    					e = window.event;
    				}
    				
    				var sender = GetEventSource(e);
    				
    			    var mi = Math.floor(Math.random() * magicClass.length);
    			    var mj = Math.floor(Math.random() * magicType.length);
    			    var mk = Math.floor(Math.random() * magicEffect.length);
                    alert("You have magically attacked " + sender.Friend.PlayerName + " with a " + magicClass[mi] + " " + magicType[mj] + " of " + magicEffect[mk] + "!");
    			}
    			
    			//pokeButton.onclick = ?;
    			friendRow.appendChild(pokeButton);

    			var removeButton = document.createElement("img");
    			SetClass(removeButton, "allFriendsSearchResultsContainerRemoveButton");
    			removeButton.src = "images/themes/" + getTheme() + "/button-friend-remove.png";
    			removeButton.Friend = friend;
    			removeButton.title = "Remove " + friend.PlayerName + " as your friend";
    			removeButton.alt = "Remove " + friend.PlayerName + " as your friend";
    			removeButton.onclick = RemoveFriend;
    			friendRow.appendChild(removeButton);

    			friendContainer.appendChild(friendRow);
    		}

    		document.getElementById("popupCover").style.display = "block";
    		document.getElementById("allFriends").style.display = "block";

    		/* add page nav buttons if enough results */
    		if (response.Friends.length >= FriendSearchSize)
    		{
    			document.getElementById("allFriendsResultsNext").style.display = "inline";
    		}
    		else
    		{
    			document.getElementById("allFriendsResultsNext").style.display = "none";
    		}

    		if (FriendSearchPage > 1)
    		{
    			document.getElementById("allFriendsResultsPrevious").style.display = "inline";
    		}
    		else
    		{
    			document.getElementById("allFriendsResultsPrevious").style.display = "none";
    		}
    	}
    	else
    	{
    		HandleUnknownResult(response);
    	}
    }
}

function SearchForFriend()
{
	FriendSearchPage = 1;
	FriendSearch = document.getElementById("searchForFriend").value;

	CommunityServices.GetPlayerFriends(FriendSearchPage, null, FriendSearch, EndGetAllFriends, null);
}

function ClearFriendSearch()
{
	FriendSearchPage = 1;
	FriendSearch = null;
	document.getElementById("searchForFriend").value = "";

	CommunityServices.GetPlayerFriends(FriendSearchPage, null, null, EndGetAllFriends, null);
}