
/**
 * Subscribe user to newsletter.
 */
function subscribeToNewsletter()
{
	var email = dojo.byId("newsletterEmail").value;
	var status = dojo.byId("newsletterStatus");
	if (!email || email.length == 0) status.innerHTML = "Empty email address.";
	else
	{
		dojo.xhrGet({
			url: "s/subscribe",
			content: {email: email},
			handleAs: "text",
			load: function(data)
			{
				if (data == "OK")
				{
					status.innerHTML = "Thank you! You have been subscribed!";
				}
				else if (data.length > 0) status.innerHTML = data;
				else status.innerHTML = "Error subscribing, please try again!";
			},
			error: function(error,args)
				{
					status.innerHTML = "Error subscribing, please try again!";
				}
		});
	}
}


var curPageName;
var curPageCallback;
var curPagePrompt;
/**
 * Check session state in order to enter current page, or if not ok transfer to the correct page.
 */
function checkSessionStatus(pageName, successCallback, promptCallback)
{
	curPageName = pageName;
	curPageCallback = successCallback;
	curPagePrompt = promptCallback;
	dojo.xhrGet({
		url: "s/checkState",
		content: {pageName: pageName},
		handleAs: "text",
		load: checkSessionStatusCallback,
		error: function(error,args)
		{
			alert("Unable to contact server, please try again.");
		}
	});
}

function checkSessionStatusCallback(data)
{
	// No redirect needed
	var red = "/";
	if (data == curPageName) red = null;
	
	// Select redirect URL
	else if (data == "DOWNLOAD") red = "startDownload.html";
	else if (data == "DOWNLOADING") red = "downloading.html";
	else if (data == "EDITOR") red = "editor.html";
	else if (data == "HOME") red = "/";
	else if (data == "INPUT") red = "input.html";
	else if (data == "PROCESSING_OUTPUT") red = "processEditor.html";
	else if (data == "QUEUE") red = "queuing.html";
	else if (data == "START_PREMIUM") red = "premium.html";
	
	// Redirect or prompt
	if (red == null) curPageCallback();
	else if (curPagePrompt) curPagePrompt(red);
	else window.location.href = red;
}


