function GA_EventSubscribe(sEventId)
{
	var oESC = new vdf.ajax.SoapCall("EventSubscribe", {}, "GA_Proxy.asp");
	var oInputs = document.getElementsByTagName("INPUT");
	var oAreas = document.getElementsByTagName("TEXTAREA");
	var i = 0;
	var sOpts = new Array();
	var stEvent = null;
	var oParBox = null;
	var sPartnerFirstname = "";
	var sPartnerLastname = "";
	var bParReq = false;
	
	for (i = 0; i < oInputs.length; i++)
	{
		if (!GA_IsNothing(oInputs[i].attributes["evoptid"]))
		{
			if (oInputs[i].type == "checkbox")
			{									
				oParBox = null;
				
				if (oInputs[i].attributes["hasExp"])
				{
					oParBox = document.getElementById("PartnerBox_" + oInputs[i].attributes["evoptid"].nodeValue);
				}
				
				iPar = (oParBox && oParBox.checked) ? 1 : 0;
				
				if (iPar == 1)
				{
					bParReq = true;
				}
				
				sOpts.push(new tEventOpt(oInputs[i].attributes["evoptid"].nodeValue, oInputs[i].checked ? 1 : 0, null, iPar));
			}
			else if ((oInputs[i].type == "radio") && oInputs[i].checked)
			{
				sOpts.push(new tEventOpt(oInputs[i].attributes["evoptid"].nodeValue, oInputs[i].attributes["opt"].nodeValue, null, 0));
			}
			else if ((oInputs[i].type == "text") && !GA_IsNothing(oInputs[i].value))
			{
				sOpts.push(new tEventOpt(oInputs[i].attributes["evoptid"].nodeValue, GA_TrimParameter(oInputs[i].value), null, 0));
			}
		}
	}
	
	for (i = 0; i < oAreas.length; i++)
	{
		if (!GA_IsNothing(oAreas[i].attributes["evoptid"]))
		{
			if ((oAreas[i].type == "textarea") && !GA_IsNothing(oAreas[i].value))
			{
				sOpts.push(new tEventOpt(oAreas[i].attributes["evoptid"].nodeValue, GA_TrimParameter(oAreas[i].value)));
			}
		}
	}
	
	if (document.getElementById("GA_eventPartner").style.display == "block")
	{
		sPartnerFirstname = document.getElementById("PartnerFirstName").value;
		sPartnerLastname = document.getElementById("PartnerLastName").value;
	}
	
	if (bParReq && (sPartnerFirstname == "" || sPartnerLastname == ""))
	{
		alert("Please provide partner information first.");
	}
	else
	{
		stEvent = new tEvent(sEventId, sOpts);

		oESC.addParam("sSessionToken", GA_GetCookie("vdfSessionKey"));
		oESC.addParam("sEmail", GA_GetCookie("gaEmail"));
		oESC.addParam("sIp", GA_IP);
		oESC.addParam("stEvent", stEvent);
		oESC.addParam("sPartnerFirst", sPartnerFirstname);
		oESC.addParam("sPartnerLast", sPartnerLastname);
		oESC.onFinished.addListener(GA_handleEventSubscribe);
		oESC.__sButtonText = document.getElementById("GA_frmEventSubscription_buttonEventSub").innerHTML;
		
		document.getElementById("GA_frmEventSubscription_buttonEventSub").innerHTML = document.getElementById("GA_divLoadingPic").innerHTML;
		document.getElementById("GA_frmEventSubscription_buttonEventSub").className = "";
		
		oESC.send(true);
	}
}

function GA_handleEventSubscribe(oEvent) 
{
	if (!GA_CallFailed(oEvent))
	{
		if (GA_CallValue(oEvent) == 0)
		{
			alert("Thank you. You are now registered to this event.");
			GA_ReloadLocation();
		}
	}
}

function GA_GetEventSubscription(sEventId)
{
	var oGESC = new vdf.ajax.SoapCall("GetEventSubscription", {}, "GA_Proxy.asp");
	oGESC.addParam("sSessionToken", GA_GetCookie("vdfSessionKey"));
	oGESC.addParam("sEmail", GA_GetCookie("gaEmail"));
	oGESC.addParam("sIp", GA_IP);
	oGESC.addParam("sEventId", sEventId);
	oGESC.onFinished.addListener(GA_handleGetEventSubscription);
	oGESC.send(true);
}

function GA_handleGetEventSubscription(oEvent) 
{
	if (!GA_CallFailed(oEvent))
	{
		document.getElementById("GA_Container").innerHTML = GA_CallValue(oEvent);
	}
}

function GA_GetEventAccountInfo(sEventId)
{
	var oGEAIC = new vdf.ajax.SoapCall("GetEventAccountInfo", {}, "GA_Proxy.asp");
	var bExtern = sEventId.indexOf("|EXTERN|") != -1;
	sEventId = sEventId.replace("|EXTERN|", "");
	var sLink = "window.open('http://localhost/globalaccount/externcommand.asp?eventid=" + sEventId + "');";
	var sButton = "";
	
	if (!bExtern)
	{
		if (GA_UserLoggedIn())
		{
			oGEAIC.addParam("sSessionToken", GA_GetCookie("vdfSessionKey"));
			oGEAIC.addParam("sEmail", GA_GetCookie("gaEmail"));
			oGEAIC.addParam("sIp", GA_IP);
			oGEAIC.addParam("sEventId", sEventId);
			oGEAIC.__sEventId = sEventId;
			oGEAIC.onFinished.addListener(GA_handleGetEventAccountInfo);
			
			document.getElementById("GA_Container").innerHTML = document.getElementById("GA_divLoadingPic").innerHTML;
			
			oGEAIC.send(true);
		}
		else
		{
			GA_WriteAccountEntry();
		}
	}
	else
	{
		sButton = ("<a Class='button' onclick=\"" + sLink + "\"><span>Register for this event</span></a><br><br>");
		
		GA_ShowScreen("GA_Container", sButton);
	}
	
}

function GA_ReSendEventSubscribe(sEventId)
{
	var oRSESC = new vdf.ajax.SoapCall("ReSendEventSubscribe", {}, "GA_Proxy.asp");
	oRSESC.addParam("sSessionToken", GA_GetCookie("vdfSessionKey"));
	oRSESC.addParam("sEmail", GA_GetCookie("gaEmail"));
	oRSESC.addParam("sIp", GA_IP);
	oRSESC.addParam("sEventId", sEventId);
	oRSESC.onFinished.addListener(GA_handleReSendEventSubscribe);
		
	document.getElementById("ReSendEventSubscribe").innerHTML = document.getElementById("GA_divLoadingPic").innerHTML;
	document.getElementById("ReSendEventSubscribe").className = "";
	
	oRSESC.send(true);
}

function GA_handleReSendEventSubscribe(oEvent)
{
	if (!GA_CallFailed(oEvent))
	{
		document.getElementById("GA_Container").innerHTML = "";
		alert("A notification e-mail has been sent again to your e-mail address.");
	}
}

function GA_handleGetEventAccountInfo(oEvent) 
{
	var sSpan = "";
	
	if (!GA_CallFailed(oEvent))
	{
		if (GA_CallValue(oEvent) == 2)
		{
			sSpan = "<span id='GA_spanSubscribed'>You are registered to this event.</span>";
			sSpan += "<a id='ReSendEventSubscribe' Class='button'><span onclick='GA_ReSendEventSubscribe(\"" + oEvent.oSource.__sEventId + "\");'>Send notification again</span></a>";
			
			
			document.getElementById("GA_Container").innerHTML = sSpan;

			GA_ScreenInfo();
		}
		else if (GA_CallValue(oEvent) != 1)
		{
			GA_ScreenInfo();
			GA_GetEventSubscription(oEvent.oSource.__sEventId);
		}
		else
		{
			document.getElementById("GA_Container").innerHTML = "Incorrect event reference (ID).";
		}
	}
}
