﻿
var PrivacySettings;

AccountServices.GetPrivacySettings(function(response)
{
	if(!HandleCommonResults(response))
	{
		if(IsSuccessResult(response))
		{
			PrivacySettings = response.PrivacySettings;
			
			var visibilityTypes = new Array();
			visibilityTypes[0] = "Private";
			visibilityTypes[1] = "Friends";
			visibilityTypes[2] = "Public";

			var privacySettingsContainer = document.getElementById("privacySettingsContainer");
			
			for(var i = 0; i < response.PrivacySettings.length; i++)
			{
				var setting = response.PrivacySettings[i];

				var dropDown = document.createElement("select");
				SetClass(dropDown, "privacySettingDropDown");
				privacySettingsContainer.appendChild(dropDown);
				dropDown.PrivacySetting = setting;
				dropDown.onchange = PrivacySettingChanged;
				
				var settingName = document.createElement("div");
				SetClass(settingName, "privacyFormHeader");
				settingName.innerHTML = setting.PrivacyResourceName;
				privacySettingsContainer.appendChild(settingName);
				
				var settingDescription = document.createElement("div");
				SetClass(settingDescription, "privacySettingDescription");
				settingDescription.innerHTML = setting.ResourceDescription;
				privacySettingsContainer.appendChild(settingDescription);
								
				for(var iVis = 0; iVis < visibilityTypes.length; iVis++)
				{
					var visibilityType = visibilityTypes[iVis];
					
					var option = document.createElement("option");
					SetClass(option, "privacySettingDropDownItem");
					option.innerHTML = visibilityType;
					dropDown.appendChild(option);
					
					if(visibilityType == setting.PreferredVisibility ||
						(setting.PreferredVisibility == null && visibilityType == setting.DefaultVisibility))
					{
						option.selected = "selected";
					}
				}
			}
		}
		else
		{
			UnknownResult(response);
		}
	}
});

function PrivacySettingChanged(e)
{
	if(e == null)
	{
		e = window.event;
	}
	
	var dropDown = GetEventSource(e);
	var setting = dropDown.PrivacySetting;
	
	setting.PreferredVisibility = dropDown.options[dropDown.selectedIndex].innerHTML;
}

function UpdatePrivacySettings()
{
	if(PrivacySettings != null && PrivacySettings.length > 0)
	{
		AccountServices.UpdatePrivacySettings(PrivacySettings, function(response)
		{
			if(!HandleCommonResults(response))
			{
				if(IsSuccessResult(response))
				{
					alert("Your privacy settings have been updated.");
				}
				else
				{
					UnknownResult(response);
				}
			}
		});
	}
}
