// $Id$

var o_form;
var o_app;
var o_username;
var o_password;
var o_remember;
var o_podNotice;
var o_podSelector;
var o_errorNotice;
var o_error;
var o_login;

function Init ()
{
	o_form        = document.forms["LoginForm"];
	o_app         = o_form.elements["Application"];
	o_username    = o_form.elements["Username"];
	o_password    = o_form.elements["Password"];
	o_remember    = o_form.elements["Remember"];
	o_podNotice   = document.getElementById("MultiplePodNotice");
	o_podSelector = document.getElementById("PodSelectorContainer");
	o_errorNotice = document.getElementById("ErrorNotice");
	o_error       = document.getElementById("ErrorContainer");
	o_login       = new PodLoginHandler();
	
	ajaxEngine.registerRequest("PodLoginResponse", "pod_login.sp");
	ajaxEngine.registerAjaxObject("o_login", o_login);
	
	l_app  = GetCookie("spApplication");
	l_user = GetCookie("spUsername");
	l_pods = GetCookie("spPods");
	l_pod  = GetCookie("spPod");
	
	if (l_app != null)
	{
		for (var i = 0; i < o_app.length; i++)
		{
			if (o_app.options[i].value == l_app)
				o_app.selectedIndex = i;
		}
		
		o_remember.checked = true;
		
		if (l_app == "Silverpop Engage B2B")
			document.getElementById("ForgotPassword").style.display = "inline";
	}
	
	if (l_user != null)
		o_username.value = l_user;
	
	if (l_pods != null && l_pod != null)
	{
		l_pods = PodLoginResponse (null, null, "Y", l_pods);
		
		if (l_pods != "")
		{
			a_pods = l_pods.split("|;|");
			
			UpdatePodNotice (a_pods, l_pod);
		}
	}
	
	if (l_app != null && l_user != null)
		o_password.focus();
	else
		o_app.focus();
	
	document.onkeypress = HandleEvent;
}

function HandleEvent (e)
{
	if (!e)
		e = event;
		
	if (!e || e.keyCode != 13)
		return;
		
	HandleClickAction("ButtonLogin");
	
	return false;
}

function GetCookie (ml_cookie)
{
	l_results = document.cookie.match ('(^|;) ?' + ml_cookie + '=([^;]*)(;|$)');
	
	if (l_results)
		return (unescape(l_results[2]));
	else
		return null;
}

function UpdateFormView (ml_app)
{
	if (ml_app == "Silverpop Engage")
	{
		a_hide = new Array ("ForgotPassword");
		a_show = new Array ();
	}
	else
	{
		a_hide = new Array ("MultiplePodNotice");
		a_show = new Array ("ForgotPassword");
	}
	
	for (var i = 0; i < a_hide.length; i++)
	{
		document.getElementById(a_hide[i]).style.display = "none";
	}
	
	for (var i = 0; i < a_show.length; i++)
	{
		document.getElementById(a_show[i]).style.display = "inline";
	}
}

function HandleClickAction (ml_button)
{
	//alert (ml_button);
	
	if (ml_button == "ButtonCancel")
	{
		o_podNotice.innerHTML = "";
		o_form.reset();
		o_app.focus();
		
		return false;
	}
	else
	{
		l_app = o_app.options[o_app.selectedIndex].value;
		
		if (l_app == "Silverpop Engage")
		{
			if (o_podNotice.style.display == "none")
			{
				l_pods = PodLoginResponse (o_username.value, o_password.value);
				
				//alert ("Pods String: " + l_pods);
				
				if (l_pods != "")
				{
					a_pods = l_pods.split("|;|");
					
					//alert ("Pods Array: " + a_pods);
					
					if (a_pods.length == 1)
					{
						a_podDetails = a_pods[0].split("|=|");

						o_form.action = a_podDetails[1];
					}
					else
					{
						UpdatePodNotice (a_pods);
						
						return false;
					}
				}
				else
				{
					// Login is invalid or failed against all pods
					
					UpdateErrorNotice ("The Username and Password is incorrect. Please try again.");
					
					o_username.focus();
					o_username.select();
					
					return false;
				}
			}
			else
			{
				o_pod = o_form.elements["Pod"];
				
				o_form.action = o_pod.options[o_pod.selectedIndex].value;
			}
		}
		else
		{
			o_form.action = "https://login1.vtrenz.net/index.cfm?method=cLoginModule.loginUser";
			//o_form.action = "http://www.silverpop.com/login/error.html";
		}
	
		o_form.elements["login"].value    = o_username.value;
		o_form.elements["username"].value = o_username.value;
		o_form.elements["password"].value = o_password.value;
		
		l_expires  = (o_remember.checked == true) ? new Date(2099, 01, 01) : new Date();
		l_app      = o_app.value;
		l_username = o_username.value;

		document.cookie = "spApplication=" + l_app + "; expires=" + l_expires.toGMTString();
		document.cookie = "spUsername=" + l_username + "; expires=" + l_expires.toGMTString();
		
		if (o_podNotice.style.display == "inline" && l_app == "Silverpop Engage")
		{
			o_pod  = o_form.elements["Pod"];
			l_pods = "";
			l_pod  = "";
			
			for (var i = 0; i < o_pod.length; i++)
			{
				l_pods += ((l_pods == "") ? "" : "_") + o_pod.options[i].text;
				
				if (i == o_pod.selectedIndex)
					l_pod = o_pod.options[i].text;
			}
			
			document.cookie = "spPods=" + l_pods + "; expires=" + l_expires.toGMTString();
			document.cookie = "spPod=" + l_pod + "; expires=" + l_expires.toGMTString();
		}
		else
		{
			l_expires = new Date();
			
			document.cookie = "spPods=; expires=" + l_expires.toGMTString();
			document.cookie = "spPod=; expires=" + l_expires.toGMTString();
		}
		
		//o_form.action = "debug.sp";
		
		if (o_app.options[o_app.selectedIndex].value == "Silverpop Engage B2B")
		{
			o_app.disabled = true;
			o_username.disabled = true;
			o_password.disabled = true;
			o_remember.disabled = true;
			
			o_pod = o_form.elements["Pod"];
			
			if (o_pod)
				o_pod.disabled = true;
			
			o_form.elements["username"].disabled = true;
			document.getElementById("ButtonLogin").disabled = true;
		}
		
		o_form.submit();
	}
	
	return true;
}

function UpdatePodNotice (ma_pods, ml_pod)
{
	if (ma_pods)
	{
		//alert ("Pods: " + ma_pods);
		
		l_podSelector = "\n<select name=\"Pod\">%%POD_OPTIONS%%\n</select>\n";
		l_podOptions  = "";
		l_podSelected = 0;
		
		for (var i = 0; i < ma_pods.length; i++)
		{
			a_podDetails  = ma_pods[i].split("|=|");
			l_podSelected = (ml_pod && ml_pod == a_podDetails[0]) ? i : l_podSelected;
			l_podOptions += "\n<option value=\"" + a_podDetails[1] + "\">" + a_podDetails[0] + "</option>"; 
		}
		
		l_podSelector = l_podSelector.replace("%%POD_OPTIONS%%", l_podOptions);
		
		o_podSelector.innerHTML = l_podSelector;
		o_podNotice.style.display = "inline";
		
		o_pod = o_form.elements["Pod"];
		o_pod.selectedIndex = l_podSelected;
		
		if (ml_pod)
			o_password.focus();
		else
			o_pod.focus();
	}
	else
	{
		o_podNotice.style.display = "none";
	}
}

function UpdateErrorNotice (ml_error)
{
	if (ml_error)
	{
		o_error.innerHTML = ml_error;
		o_errorNotice.style.display = "inline";
	}
	else
	{
		o_errorNotice.style.display = "none";
	}
}

function PodLoginResponse (ml_username, ml_password, ml_listOnly, ml_pods)
{
	ajaxEngine.sendRequest("PodLoginResponse", { asynchronous: false, parameters: "u=" + ml_username + "&p=" + ml_password + "&listOnly=" + ml_listOnly + "&podsList=" + ml_pods } );
	
	return o_login.getReturnValue();
}

