﻿
function AccountServicesProvider() {}
var AccountServices = new AccountServicesProvider();


//========CreateAccount========//
AccountServicesProvider.prototype.CreateAccount = function(email, password, playerName, firstName, lastName, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "CreateAccount");
	serviceRequest.AddFormParameter("email", email);
	serviceRequest.AddFormParameter("password", password);
	serviceRequest.AddFormParameter("playerName", playerName);
	
	if(!IsNullOrEmpty(firstName))
	{
		serviceRequest.AddFormParameter("firstName", firstName);
	}
	
	if(!IsNullOrEmpty(lastName))
	{
		serviceRequest.AddFormParameter("lastName", lastName);
	}
	
	SendRequest(serviceRequest, callback, state);
}


//========RegisterGame========//
AccountServicesProvider.prototype.RegisterGame = function(gameName, password, callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "RegisterGame");
	serviceRequest.AddFormParameter("gameName", gameName);
	serviceRequest.AddFormParameter("password", password);

	SendRequest(serviceRequest, callback, state);
}


//========AssociateGameAccount========//
AccountServicesProvider.prototype.AssociateGameAccount = function(gameName, gameLogin, gamePassword, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "AssociateGameAccount");
	serviceRequest.AddFormParameter("gameName", gameName);
	serviceRequest.AddFormParameter("gameLogin", gameLogin);
	serviceRequest.AddFormParameter("gamePassword", gamePassword);

	SendRequest(serviceRequest, callback, state);
}


//========SignIn========//
AccountServicesProvider.prototype.SignIn = function(loginId, password, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "SignIn");
	serviceRequest.AddFormParameter("loginId", loginId);
	serviceRequest.AddFormParameter("password", password);

	SendRequest(serviceRequest, callback, state);
}


//========SignOut========//
AccountServicesProvider.prototype.SignOut = function(callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "SignOut");

	SendRequest(serviceRequest, callback, state);
}


//========ChangePassword========//
AccountServicesProvider.prototype.ChangePassword = function(oldPassword, newPassword, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "ChangePassword");
	serviceRequest.AddFormParameter("oldPassword", oldPassword);
	serviceRequest.AddFormParameter("newPassword", newPassword);

	SendRequest(serviceRequest, callback, state);
}


//========ResendActivationEmail========//
AccountServicesProvider.prototype.ResendActivationEmail = function(emailAddress, password, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "ResendActivationEmail");
	serviceRequest.AddFormParameter("emailAddress", emailAddress);
	serviceRequest.AddFormParameter("password", password);

	SendRequest(serviceRequest, callback, state);
}


//========ForgotPassword========//
AccountServicesProvider.prototype.ForgotPassword = function(emailAddress, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "ForgotPassword");
	serviceRequest.AddFormParameter("emailAddress", emailAddress);

	SendRequest(serviceRequest, callback, state);
}


//========ResetPassword========//
AccountServicesProvider.prototype.ResetPassword = function(emailAddress, resetCode, newPassword, callback, state)
{
	var serviceRequest = CreateSecureServiceRequest("AccountService", "ResetPassword");
	serviceRequest.AddFormParameter("emailAddress", emailAddress);
	serviceRequest.AddFormParameter("resetCode", resetCode);
	serviceRequest.AddFormParameter("newPassword", newPassword);

	SendRequest(serviceRequest, callback, state);
}


//========GetPrivacySettings========//
AccountServicesProvider.prototype.GetPrivacySettings = function(callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "GetPrivacySettings");

	SendRequest(serviceRequest, callback, state);
}


//========UpdatePrivacySettings========//
AccountServicesProvider.prototype.UpdatePrivacySettings = function(privacySettings, callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "UpdatePrivacySettings");
	serviceRequest.AddObjectParameter("privacySettings", privacySettings);

	SendRequest(serviceRequest, callback, state);
}


//========SetSessionObject========//
AccountServicesProvider.prototype.SetSessionObject = function(objectName, objectValue, callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "SetSessionObject");
	serviceRequest.AddFormParameter("objectName", objectName);
	serviceRequest.AddFormParameter("objectValue", objectValue);

	SendRequest(serviceRequest, callback, state);
}


//========GetSessionObject========//
AccountServicesProvider.prototype.GetSessionObject = function(objectName, removeFromSession, callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "GetSessionObject");
	serviceRequest.AddFormParameter("objectName", objectName);
	serviceRequest.AddFormParameter("removeFromSession", removeFromSession);

	SendRequest(serviceRequest, callback, state);
}


//========DeleteSessionObject========//
AccountServicesProvider.prototype.DeleteSessionObject = function(objectName, callback, state)
{
	var serviceRequest = CreateServiceRequest("AccountService", "DeleteSessionObject");
	serviceRequest.AddFormParameter("objectName", objectName);

	SendRequest(serviceRequest, callback, state);
}
