// create the page level variables to store information
var ssokey = "";
var emailaddress = "";
var emailField = "";
var passwordField = "";
var screenname = "";
var rememberme = "";
var url = "";
var cookieDomain = "";
var interval = "";
var redirectAfterLogin = false;

function openLogonPopUp() {
	document.getElementById('logonPopUp').style.visibility="visible";
	document.getElementById('logon_email').focus();
}

function closeLogonPopUp() {
	document.getElementById('logonPopUp').style.visibility="hidden";
}

// This gets the hidden iframe "logonFrame"
function getComFrame(){
	var iwin;
	if(navigator.userAgent.indexOf("Safari") != -1){
		iwin = frames["logonFrame"];
	}else{
		if (document.getElementById("logonFrame")) {
			iwin = document.getElementById("logonFrame").contentWindow;
		}
	}
	return iwin;
}

// This sends a message to the hidden iframe
function sendLogonMessage(input_url, email_field, password_field, rememberme_field, input_cookiedomain, input_userRegPath, input_redirectAfterLogin){
	// set the page level variables
	url = input_url;
	cookieDomain = input_cookiedomain;
	userRegPath = input_userRegPath;
	emailField = email_field;
	passwordField = password_field;
	redirectAfterLogin = input_redirectAfterLogin;

	if (document.getElementById(rememberme_field).checked) {
		rememberme = "YES";
	} else {
		rememberme = "NO";
	}
	emailaddress = document.getElementById(email_field).value;
	var password = document.getElementById(password_field).value;

	var frameLocation = url+"?em="+emailaddress+"&pwd="+password+"&rm="+rememberme;
	getComFrame().location.href = frameLocation;

	interval = setInterval(checkForMessages, 200);
}

function checkForMessages() {
	if (screenname.length == 0) {
		if (getComFrame()) {
			var hiddenFrame = getComFrame().location;
			if (hiddenFrame.hash && hiddenFrame.hash != screenname)
			{
				hash = hiddenFrame.hash.replace('#','');
				hash = hash.replace("%0A",'');
				if (hash!="FAILURE") {
					split = hash.split("||");
					ssokey = split[0];
					emailaddress = split[1];
					screenname = split[2];
				}
				logonCallback(hash)
			}
		}
	}
}

function logonCallback(hash) {
	clearInterval(interval);
	if (hash.length > 0 && hash != "undefined" && hash != "FAILURE") {
		setCookie(ssokey, emailaddress, screenname, rememberme, cookieDomain); // this is the actual logon

		// clear the email address and password
		document.getElementById(emailField).value = "";
		document.getElementById(passwordField).value = "";
		if (document.getElementById('logon_title')) {
			document.getElementById('logon_title').style.display="block";
			document.getElementById('logon_title').style.visibility="visible";
		}
		document.getElementById("logon_error").innerHTML = "";
		closeLogonPopUp();

		// need to update pages if functionality requires
		if (redirectAfterLogin)
			window.location.href=appsPath + "/utils/ureg/ui/updateaccount.php?showLoginSuccessful=true";
		else
			window.location.href=window.location.href;
	} else {
		// unable to logon
		logonError();
	}
}

function logonError() {
	emailaddress = "";
	emailField = "";
	passwordField = "";
	screenname = "";
	rememberme = "";
	url = "";
	cookieDomain = "";
	userRegPath = "";
	// var errormessage = "Unable to login. Please try again.";
	var errormessage = "We couldn't find your Login info in the system. Here are possible reasons:";
	errormessage += "<br />1. Check the spelling of your Email or Screen Name.";
	errormessage += "<br />2. Your account needs to be verified. <a href='"+appsPath+"/utils/ureg/ui/resendvalidation.php' class='YellowToWhite'><span class='YellowToWhite'>Verify here</span></a>.";
	errormessage += "<br />3. You are not yet registered.  <a href='"+appsPath+"/utils/ureg/ui/createaccount.php' class='YellowToWhite'><span class='YellowToWhite'>Register here</span></a>.";	
	// need to show the error message
	document.getElementById("logon_error").innerHTML = errormessage;
	if (document.getElementById('logon_title')) {
		document.getElementById('logon_title').style.display="none";
		document.getElementById('logon_title').style.visibility="hidden";
	}
}

function stripComments(textToStrip) {
	while (textToStrip.search("-->") > -1) {
		var startPos = textToStrip.search("<!--");
		var endPos = 0;
		endPos = textToStrip.search("-->") + 3;
		var length = endPos - startPos;
		if (endPos > startPos && endPos <= textToStrip.length) {
			var inBetweenText = textToStrip.substr(startPos, length);
			textToStrip = textToStrip.replace(inBetweenText, "");
		} else {
			return textToStrip; 
		}
	}

	return textToStrip;
}