//------------------------------------------
// SPA download locations
//------------------------------------------
var cookieLinkRP = "https://www.radialpoint.net/cgi-bin/acctmgr.cgi?vers=5&op=PreAuthV5&partnerid=2029&xml=yes&required=B&cformat=2&";
var cookieLinkFreedom = "https://www.zks.freedom.net/cgi-bin/acctmgr.cgi?vers=5&op=PreAuthV5&partnerid=2029&xml=yes&required=B&";
var myXmlHttpCookie;
var myXmlHttpCookieMac;
var debug = false;
var auth = "";
var ref = "";
var cred = "";
var email = "";
var language = "";
var createAccount = true;

var gDownloadPackage_R = "https://radialpoint.fileburst.com/radialpoint/SPD35/358/SPD.exe";
var gDownloadPackage_RPS = "https://radialpoint.fileburst.com/radialpoint/SPD35/358/SPD-RPS.exe";
var gDownloadPackage_rpsMac = "https://radialpoint.fileburst.com/radialpoint/MAC/3000/RadialpointSecurityServicesInstaller.dmg";

var gProductDownload = "";

function setAuth(auth1)
{
	auth = auth1;
}

function setRef(ref1)
{
	ref = ref1;
}

function setCred(cred1)
{
	cred = cred1;
}

function setEmail(email1)
{
	email = email1;
}

function setLanguage(language1)
{
        Debug("setLanguage","setting language to: " + language1 );
	language = language1;
}

function setProduct(product1)
{
        Debug("setProduct","setting product to: " + product1 );
        gProductDownload = product1;
}

function getXmlHttpObject()
{
	var xmlHttp = null;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function stateChanged()
{
	if (myXmlHttpCookie.readyState == 4 || myXmlHttpCookie.readyState == "complete")
	{
		Debug("stateChanged","Response is: "+ myXmlHttpCookie.responseText);
		checkCookieResponse(myXmlHttpCookie.responseText);
	}
}

function stateChangedMac()
{
        if (myXmlHttpCookieMac.readyState == 4 || myXmlHttpCookieMac.readyState == "complete")
        {
		var resp = myXmlHttpCookieMac.responseText;
                Debug("stateChangedMac","Response is: "+ myXmlHttpCookieMac.responseText);
		if ((resp.indexOf("errcode=\"0100\"",0) != -1) && (resp.indexOf("<errormsg>No error</errormsg>",0) != -1) && (resp.indexOf("<warnings>",0) == -1))
	        {
        	        Debug("stateChangedMac", "Cookie drop successful! Downloading product..");
			downloadProduct();
		}
		else
		{
			alert("An error has occured! Please try again later.");
		}
		
        }
}


function checkCookieResponse(resp)
{
	Debug("checkCookieResponse",resp);
	if ((resp.indexOf("errcode=\"0100\"",0) != -1) && (resp.indexOf("<errormsg>No error</errormsg>",0) != -1) && (resp.indexOf("<warnings>",0) == -1))
	{
		Debug("checkCookieResponse", "Account exists.");
		if (createAccount)
		{
			if (gProductDownload == "rpsMac")
			{
				dropRPCookieFinal();
			}
			else
			{
				dropCookieIFrame();
			}
		}
		else
		{
			Debug("checkCookieResponse", "Downloading SPA..");
			downloadProduct();
		}
	}
	else
	{
		if (createAccount)
		{
			Debug("checkCookieResponse", "Account doesnt exists! Creating account for user..");
			window.location.href = "../includes/accountsCreation.php?auth=" + auth + "&cred=" + cred + "&email=" + email + "&language=" + language + "&product=" + gProductDownload + "&referrer=" + ref;
		}
	}
}

function dropCookie(createAccount1, randNumber)
{
	createAccount = createAccount1; //bool to create account or not if cookie drop fails
	
	if (!createAccount)
	{
		if (gProductDownload == "rpsMac")
                {
                        dropRPCookieFinal();
                }
                else
                {
                        dropCookieIFrame();
                }
	}
	else
	{
		myXmlHttpCookie = getXmlHttpObject();
		if (myXmlHttpCookie == null)	// AJAX not supported, call other method (drop cookie regular way)
		{
			alert("Javascript not supported or not on!");
			return;
		}
		else
		{
			Debug("dropCookie","Dropping cookie with: " + auth + "/" + cred);
			var suburl = (gProductDownload == "rps9BetaEn") ? "en" : language;
			var url = cookieLinkRP+"auth=" + auth + "&cred=" + cred + "&sgmt-suburl=" + suburl + "&rand=" + Math.floor(Math.random()*101);
			Debug("dropCookie","My cookie link is now: " + url);
			myXmlHttpCookie.onreadystatechange = stateChanged;
			myXmlHttpCookie.open("GET",url,"true");
			myXmlHttpCookie.send(null);
		}
	}
}

function dropRPCookieFinal() //for mac only
{
	myXmlHttpCookieMac = getXmlHttpObject();
        if (myXmlHttpCookieMac == null)    // AJAX not supported, call other method (drop cookie regular way)
        {
		alert("Javascript not supported or not on!");
                return;
        }
        else
        {
		Debug("dropRPCookieFinal","Dropping cookie with: " + auth + "/" + cred);
		var suburl = (gProductDownload == "rps9BetaEn") ? "en" : language;
                var url = cookieLinkRP+"auth=" + auth + "&cred=" + cred + "&sgmt-suburl=" + suburl + "&rand=" + Math.floor(Math.random()*101) + "&cformat=2"; //cformat=2 for mac only
                Debug("dropRPCookieFinal","My cookie link is now: " + url);
                myXmlHttpCookieMac.onreadystatechange = stateChangedMac;
                myXmlHttpCookieMac.open("GET",url,"true");
                myXmlHttpCookieMac.send(null);
       }
}

function dropCookieIFrame()
{	
	var suburl = (gProductDownload == "rps9BetaEn") ? "en" : language;
	var url = cookieLinkFreedom + "auth=" + auth + "&cred=" + cred + "&sgmt-suburl=" + suburl + "&rand=" + Math.floor(Math.random()*101);
	Debug("dropCookieIFrame","Changing IFrame source to cookie url: " + url);
	
	//window.parent.document.all.cookieIFrame.src = url;
	if (window.parent.document.getElementById('cookieIFrame'))
	{
		Debug("dropCookieIFrame", "cookieIFrame found! Dropping freedom cookie..");
		window.parent.document.getElementById('cookieIFrame').src = url;
		window.parent.document.getElementById('cookieIFrame').location = url;
		//frames[cookieIFrame].location = url;
	}
	else
	{
		Debug("dropCookieIFrame", "cookieIFrame not found!!");
	}
	downloadProduct();
}
function downloadProduct()
{
	var sSrc = gDownloadPackage_RPS;
	/*if (!downloadReadyContainer){
	alert ("downloadReadyContainer null!!");
	}*/
	//alert(gProductDownload);
        if (gProductDownload == "rpsMac"){
                sSrc = gDownloadPackage_rpsMac;
        }
        else if (gProductDownload == "spdBeta"){
                sSrc = gDownloadPackage_R;
        }
        document.getElementById("downloadReadyContainer").style.display = "";
        document.getElementsByName("downloadReadyLink")[0].href = sSrc;

}

function Debug(func,msg)
{
	if (debug == false)
	{
		return;
	}
	else
	{
		alert("Function: " + func + "\nMessage: " + msg);
	}
}
