﻿
function CommunityServicesProvider() { }
var CommunityServices = new CommunityServicesProvider();


//========GetPlayerEventStream========//
CommunityServicesProvider.prototype.GetPlayerEventStream = function(playerName, includeGlobalEvents, includeNetworkEvents, pageNumber, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "GetPlayerEventStream");

	if(playerName != null && playerName.length > 0)
	{
		serviceRequest.AddFormParameter("playerName", playerName);
	}
	
	serviceRequest.AddFormParameter("includeGlobalEvents", includeGlobalEvents);
	serviceRequest.AddFormParameter("includeNetworkEvents", includeNetworkEvents);
	serviceRequest.AddFormParameter("pageNumber", pageNumber);

	SendRequest(serviceRequest, callback, state);
}


//========GetCharacterEventStream========//
CommunityServicesProvider.prototype.GetCharacterEventStream = function(characterId, pageNumber, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "GetCharacterEventStream");

	serviceRequest.AddFormParameter("characterId", characterId);
	serviceRequest.AddFormParameter("pageNumber", pageNumber);

	SendRequest(serviceRequest, callback, state);
}


//========GetGameEventStream========//
CommunityServicesProvider.prototype.GetGameEventStream = function(gameName, pageNumber, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "GetGameEventStream");

	serviceRequest.AddFormParameter("gameName", gameName);
	serviceRequest.AddFormParameter("pageNumber", pageNumber);

	SendRequest(serviceRequest, callback, state);
}


//========AddEventComment========//
CommunityServicesProvider.prototype.AddEventComment = function(eventId, commentText, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "AddEventComment");

	serviceRequest.AddFormParameter("eventId", eventId);
	serviceRequest.AddFormParameter("commentText", commentText);

	SendRequest(serviceRequest, callback, state);
}


//========SearchForPlayers========//
CommunityServicesProvider.prototype.SearchForPlayers = function(pageNumber, playerName, email, fullName, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "SearchForPlayers");

	serviceRequest.AddFormParameter("pageNumber", pageNumber);

	if (playerName != null && playerName.length > 0)
	{
		serviceRequest.AddFormParameter("playerName", playerName);
	}

	if (email != null && email.length > 0)
	{
		serviceRequest.AddFormParameter("email", email);
	}

	if (fullName != null && fullName.length > 0)
	{
		serviceRequest.AddFormParameter("fullName", fullName);
	}
	
	SendRequest(serviceRequest, callback, state);
}


//========ApprovePlayerFriendRequest========//
CommunityServicesProvider.prototype.ApprovePlayerFriendRequest = function(sourcePlayerId, userDescription, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "ApprovePlayerFriendRequest");

	serviceRequest.AddFormParameter("sourcePlayerId", sourcePlayerId);

	if (userDescription != null && userDescription.length > 0)
	{
		serviceRequest.AddFormParameter("userDescription", userDescription);		
	}

	SendRequest(serviceRequest, callback, state);
}


//========IgnorePlayerFriendRequest========//
CommunityServicesProvider.prototype.IgnorePlayerFriendRequest = function(sourcePlayerId, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "IgnorePlayerFriendRequest");

	serviceRequest.AddFormParameter("sourcePlayerId", sourcePlayerId);

	SendRequest(serviceRequest, callback, state);
}


//========RequestPlayerFriendship========//
CommunityServicesProvider.prototype.RequestPlayerFriendship = function(playerName, requestMessage, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "RequestPlayerFriendship");

	serviceRequest.AddFormParameter("playerName", playerName);
	
	if (requestMessage != null && requestMessage.length > 0)
	{
		serviceRequest.AddFormParameter("requestMessage", requestMessage);
	}

	SendRequest(serviceRequest, callback, state);
}


//========GetPlayerFriendRequests========//
CommunityServicesProvider.prototype.GetPlayerFriendRequests = function(callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "GetPlayerFriendRequests");

	SendRequest(serviceRequest, callback, state);
}


//========GetPlayerFriends========//
CommunityServicesProvider.prototype.GetPlayerFriends = function(pageNumber, targetPlayerName, friendNameOrEmail, callback ,state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "GetPlayerFriends");

	serviceRequest.AddFormParameter("pageNumber", pageNumber);

	if (targetPlayerName != null && targetPlayerName.length > 0)
	{
		serviceRequest.AddFormParameter("targetPlayerName", targetPlayerName);
	}

	if (friendNameOrEmail != null && friendNameOrEmail.length > 0)
	{
		serviceRequest.AddFormParameter("friendNameOrEmail", friendNameOrEmail);
	}
	
	SendRequest(serviceRequest, callback, state);
}


//========RemovePlayerFriend========//
CommunityServicesProvider.prototype.RemovePlayerFriend = function(friendId, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "RemovePlayerFriend");

	serviceRequest.AddFormParameter("friendId", friendId);

	SendRequest(serviceRequest, callback, state);
}


//========BroadcastMessage========//
CommunityServicesProvider.prototype.BroadcastMessage = function(messageText, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "BroadcastMessage");

	serviceRequest.AddFormParameter("messageText", messageText);

	SendRequest(serviceRequest, callback, state);
}


//========SubmitFeedback========//
CommunityServicesProvider.prototype.SubmitFeedback = function(feedbackType, feedbackMessage, callback, state)
{
	var serviceRequest = CreateServiceRequest("CommunityService", "SubmitFeedback");

	serviceRequest.AddFormParameter("feedbackType", feedbackType);
	serviceRequest.AddFormParameter("feedbackMessage", feedbackMessage);

	SendRequest(serviceRequest, callback, state);
}