function setCookie(name,value,expireDays)
{
	var expDate = new Date();
	expDate.setDate(expDate.getDate()+expireDays);
	document.cookie=name+"="+escape(value)+((expireDays==null) ? "" : ";expires="+exdate.toUTCString());
}

function getCookie(name)
{
	if(document.cookie.length>0)
	{
		start=document.cookie.indexOf(name+"=");
		if(start!=-1)
		{
			start=start+name.length+1;
			end=document.cookie.indexOf(";",start);
			if(end==-1) end=document.cookie.length;
			return unescape(document.cookie.substring(start,end));
		}
	}
	return "";
}

function maskViewport()
{
	$("body").prepend("<div id=\"blocker\" style=\"position: fixed; z-index: 11; left: 0; right: 0; top: 0; bottom: 0; background-color: white; opacity: 0; filter: alpha(opacity=0);\"></div>");
	$("#blocker").fadeTo(500,.65);
}

function trim(string)
{
	return string.replace(/^\s+|\s+$/g,"");
}

function unmaskViewport()
{
	$("#blocker").fadeOut(500, function() {$("#blocker").remove();});
}

function destroyMessage()
{
	$("#messageWindow").remove();
}

function createMessage(message,buttonText,unmask,f)
{
	if(buttonText == null) buttonText = "Close";
	if(unmask == null) unmask = true;
	viewportWidth = $("html").innerWidth();
	if($("#messageWindow").length > 0) destroyMessage();
	leftPos = (viewportWidth/2)-150;
	$("body").append("<div id=\"messageWindow\" style=\"position: fixed; z-index: 101; left: "+leftPos+"px; top: 200px;\"><p>"+message+"</p><p style=\"text-align:left\"><a class=\"button\" id=\"closeMessage\">"+buttonText+"</a></p></div>");
	$("#closeMessage").focus();
	$("#closeMessage").click(function()
	{
		destroyMessage();
		if(unmask) unmaskViewport();
		if(f!=null) f();
	});
}

function createWaitMessage(message)
{
	viewportWidth = $("html").innerWidth();
	if($("#messageWindow").length > 0) destroyMessage();
	leftPos = (viewportWidth/2)-150;
	$("body").append("<div id=\"messageWindow\" style=\"position: fixed; z-index: 101; left: "+leftPos+"px; top: 200px;\"><p>"+message+"</p></div>");
}

function loadLoginModule()
{
	destroyMessage();
	maskViewport();
	createWaitMessage("Loading...");
	$.ajax({
		url: "/account/test_webuser_service.jsp",
		cache: false,
		success: function(response)
		{
			destroyMessage();
			if(trim(response)=="0")
			{
				createMessage("The user login system is temporarily unavailable. Please try again in a little while.<br /><br />We apologize for any inconvenience.");
			}
			else
			{
				viewportWidth = $("html").innerWidth();
				leftPos = (viewportWidth/2)-245;
				$("body").append("<div id=\"loginRegister\" style=\"position: absolute; z-index: 100; left: "+leftPos+"px; top: 30px; display: none;\"></div>");
				$.ajax({
					url: "/login-register.jsp",
					cache: false,
					success: function(html)
					{
						$("#loginRegister").append(html);
						$.ajax(
						{
							type: "GET",
							url: "/scripts/login-register.js",
							dataType: "script",
							success: function()
							{
								$("#loginRegister #loginForm").show();
								$("#loginRegister").show();
								$("#loginRegister #fldLoginEmail").focus();
							}
						});
					}
				});
			}
		}
	});
}
function loadRegisterModule(token)
{
	if(token==undefined) token = "";
	destroyMessage();
	maskViewport();
	createWaitMessage("Loading...");
	$.ajax({
		url: "/account/test_reg_services.jsp",
		cache: false,
		success: function(response)
		{
			destroyMessage();
			if(trim(response)=="0")
			{
				createMessage("The registrations system is temporarily unavailable. Please try again in a little while.<br /><br />We apologize for any inconvenience.");
			}
			else
			{
				viewportWidth = $("html").innerWidth();
				leftPos = (viewportWidth/2)-245;
				$("body").append("<div id=\"loginRegister\" style=\"position: absolute; z-index: 100; left: "+leftPos+"px; top: 30px; display: none;\"></div>");
				$.ajax({
					method: "post",
					url: "/login-register.jsp",
					data: "t="+token,
					cache: false,
					success: function(html)
					{
						$("#loginRegister").append(html);
						$.ajax(
						{
							type: "GET",
							url: "/scripts/login-register.js",
							dataType: "script",
							success: function()
							{
								$("#loginRegister #registerForm").show();
								$("#loginRegister").show();
								$("#loginRegister #fldEmail").focus();
							}
						});
					}
				});
			}
		}
	});
}

$(document).ready(function()
{
	$("#login, .loginLink").live("click", function(event)
	{
		event.preventDefault();
		var parameters = window.location.search;
		if(parameters.length > 0)
		{
			parameters = "&" + parameters.substr(1);
		}
		if(location.protocol!="https:"){
			createWaitMessage("Establishing secure connection...");
			window.location = "https://"+window.location.hostname+window.location.pathname+"?ll"+parameters;
		} else {
			createWaitMessage("Loading...");
			loadLoginModule();
		}
	});
	
	$("#register, .registerLink").live("click", function(event)
	{
		event.preventDefault();
		var parameters = window.location.search;
		if(parameters.length > 0)
		{
			parameters = "&" + parameters.substr(1);
		}
		if(location.protocol!="https:"){
			createWaitMessage("Establishing secure connection...");
			window.location = "https://"+window.location.hostname+window.location.pathname+"?lr"+parameters;
		} else {
			createWaitMessage("Loading...");
			loadRegisterModule();
		}
	});
	
	$(".logoffLink").live("click", function(event)
	{
		event.preventDefault();
		$.ajax({
			url: "/account/logoff.jsp",
			cache: false,
			success: function()
			{
				window.location.reload(true);
			}
		});
	});
	
	if(window.location.protocol == "https:")
	{
		if(window.location.search.substring(0,3) == "?ll")
		{
			loadLoginModule();
		}
		if(window.location.search.substring(0,3) == "?lr")
		{
			loadRegisterModule();
		}
	}
});