// Library of general routines for all CSI pages

// variables
var loggedIn = false;
var messages = '';
var uid = '';
var sessid = '';
var errmsg = '';
var redirect = '';
var logout = '';
var domain = '';
var temp = '';
var hosting = baseDomainString();
var cmd = '';
var NextLink = '';
sessvars.$.prefs.crossDomain = true; 

// readCookie method: called to read the current id cookie
function readCookie(name)
{
	var nameEQ = name + "=";
	//alert('in readCookie for: '+name);
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) {
			//alert(c.substring(nameEQ.length,c.length));
			return c.substring(nameEQ.length,c.length);
			}
	}
	return null;
}

// openNewWindow method: called to open a new window for information or messaging
function openNewWindow(fileName,theWidth,theHeight)
{
  	window.open(fileName,"Explanation","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width="+theWidth+",height="+theHeight);
}

// checklogin method: used to configure the display of the login block
function examlogin()
{
	// Retrieve credentials from cookies or session variables
	retrCredentials();
	
	// Update display
	fullURL = parent.document.URL;
	cmd = fullURL.substring(fullURL.indexOf('?')+1, fullURL.length)
	if (uid)
		{
			loggedIn = true;
			checkRedirect(uid,sessid);
		}
	else
		{ 
			loggedIn = false;
		}

	// Process parameterized logout
	//alert(cmd);
	if (cmd=='logout') {
		DeleteCookie("ID","/",hosting);
		DeleteCookie("Sess","/",hosting);
		sessvars.$.clearMem()
		sessvars.$.flush()
		sessvars.CIS_cmd = 'logout';
		uid = '';
		sessid='';
		errmsg = '';
		loggedIn = false;
		fullURL = fullURL.substring(0, fullURL.indexOf('?')-1);
		window.location.href = fullURL;
		}
}

// function to retrieve credentials from cookies or sessionvars and store to variables
function retrCredentials() {
	// Check cookies
	temp = readCookie('ID');
	if (isdefined(temp)) { uid = temp; }
	temp = readCookie('Sess');
	if (isdefined(temp)) { sessid = temp; }
	if (uid.length == 0) {
		// If no cookies, look for session vars
		if (sessvars.CIS_sessid != null && sessvars.CIS_sessid != '') { sessid = sessvars.CIS_sessid; }
		if (sessvars.CIS_uid != null && sessvars.CIS_uid != '') { uid = sessvars.CIS_uid; }
		if (sessvars.CIS_cmd != null && sessvars.CIS_cmd != '') { cmd = sessvars.CIS_cmd; } 
		if (uid != '' && sessid != '' && cmd != 'logout') {
			var expdate = new Date();
			expdate.setTime (expdate.getTime() +  86400000);
	  		SetCookie("ID", uid, expdate, "/", "."+hosting);
  			SetCookie("Sess", sessid, expdate, "/", "."+hosting);
			}
		if (cmd == 'logout') {
			dynamicLogout();
			}			
		}
	else {
		// Check for logout
		if (sessvars.CIS_cmd != null && sessvars.CIS_cmd != '') { cmd = sessvars.CIS_cmd; } 
		if (cmd == 'logout') {
			dynamicLogout();
			}
		else {
			// If cookies, set session vars if needed
			if (sessvars.CIS_uid == null || sessvars.CIS_uid == '') { sessvars.CIS_uid = uid; }
			if (sessvars.CIS_sessid == null || sessvars.CIS_sessid == '') { sessvars.CIS_sessid = sessid; }
			if (sessvars.CIS_hosting == null || sessvars.CIS_hosting == '') { sessvars.CIS_hosting = hosting; }
			sessvars.CIS_cmd = '';
			}
	}
}

// Dynamic tag logout
function dynamicLogout() {
	DeleteCookie("ID","/",hosting);
	DeleteCookie("Sess","/",hosting);
	sessvars.$.clearMem()
	sessvars.$.flush()
	sessvars.CIS_cmd = 'logout';
	uid = '';
	sessid='';
	errmsg = '';
	mdiv = document.getElementById("loginmsg");
	if (mdiv) {
		mdiv.style.display = "";
		}
	mdiv = document.getElementById("logoutmsg");
	if (mdiv) {
		mdiv.style.display = "none";
		}
	loggedIn = false;
	resetExam();
	//window.location.href = logout;
}

// Dynamic check prepaid registration
function dynamicValExam() {
	EXAMID = escape(document.getElementById('EXAMID').value);
	mdiv = document.getElementById("EXAMIDMsg");
	if (EXAMID == ''){
		if (mdiv) {
			mdiv.style.display = "";
			mdiv.innerHTML = "<span class='error'>Please enter an Exam ID</span>";
			}	
		}
	else
		{
			mdiv.style.display = "none";
		}

	EXAMKEY = escape(document.getElementById('EXAMKEY').value);

	mdiv = document.getElementById("SRVYIDMsg");
	if (mdiv) { mdiv.innerHTML = ''; }
	mdiv = document.getElementById("Msg1");
	if (mdiv) { mdiv.innerHTML = ''; }
	mdiv = document.getElementById("ErrMsg");
	if (mdiv) { mdiv.innerHTML = ''; }
		
	if (EXAMID != '') {
		var request = "https://w1.certegrity.com/ps.nsf/WsCheckExamAccess?OpenAgent" +
                     "&EXAMID=" + EXAMID + "&EXAMKEY=" + EXAMKEY +
					 "&RG=" + uid + "&SESS=" + sessid +
					 "&HP=" + hosting + "&callback=getExam";
		//alert(request);
		var head = document.getElementsByTagName("head").item(0);
		var script = document.createElement("script");
		script.setAttribute("type", "text/javascript");
		script.setAttribute("src", request);
		head.appendChild(script);
		}
}

// Dynamic survey lookup
function dynamicValSurvey() {
	SRVYID = escape(document.getElementById('SRVYID').value);
	mdiv = document.getElementById("SRVYIDMsg");
	if (SRVYID == ''){
		if (mdiv) {
			mdiv.style.display = "";
			mdiv.innerHTML = "<span class='error'>Please enter a Survey Key</span>";
			}	
		}
	else
		{
			mdiv.style.display = "none";
		}

	mdiv = document.getElementById("EXAMIDMsg");
	if (mdiv) { mdiv.innerHTML = ''; }
	mdiv = document.getElementById("EXAMKEYMsg");
	if (mdiv) { mdiv.innerHTML = ''; }	
	mdiv = document.getElementById("Msg2");
	if (mdiv) { mdiv.innerHTML = ''; }
	mdiv = document.getElementById("ErrMsg2");
	if (mdiv) { mdiv.innerHTML = ''; }
		
	if (SRVYID != '') {
		var request = "https://w1.certegrity.com/ps.nsf/WsCheckSurveyAccess?OpenAgent" +
                     "&SRVYID=" + SRVYID + "&RG=" + uid + "&SESS=" + sessid +
					 "&HP=" + hosting + "&callback=getSurvey";
		//alert(request);
		var head = document.getElementsByTagName("head").item(0);
		var script = document.createElement("script");
		script.setAttribute("type", "text/javascript");
		script.setAttribute("src", request);
		head.appendChild(script);
		}
}

// Dynamic tag login function
function dynamicLogin() {
	username = escape(document.getElementById('username').value);
	password = escape(document.getElementById('password').value);
	var request = "https://w1.certegrity.com/ps.nsf/WsLogin?OpenAgent&UN="
                     + username
                     + "&PW=" + password + "&HP=" + hosting + "&callback=getLogin";
	//alert(request);
	var head = document.getElementsByTagName("head").item(0);
	var script = document.createElement("script");
	script.setAttribute("type", "text/javascript");
	script.setAttribute("src", request);
	head.appendChild(script);
}

// Dynamic tag check for redirection string
function checkRedirect(uid,sessid)
{
	var request = "https://w1.certegrity.com/ps.nsf/WsCLogin?OpenAgent&UID="
                     + uid + "&SES=" + sessid + "&HP=" + hosting + "&callback=getRedirect";
	//alert(request);
	var head = document.getElementsByTagName("head").item(0);
	var script = document.createElement("script");
	script.setAttribute("type", "text/javascript");
	script.setAttribute("src", request);
	head.appendChild(script);
}

// Dynamic tag password retrieval function
function WsPwd()
{
	lastname = escape(document.getElementById('lastname').value);
	emailaddr = escape(document.getElementById('emailaddr').value);
	var request = "https://w1.certegrity.com/ps.nsf/WsPwd?OpenAgent&LN="
                     + lastname
                     + "&EM=" + emailaddr + "&callback=getPwd";
	//alert(request);
	var head = document.getElementsByTagName("head").item(0);
	var script = document.createElement("script");
	script.setAttribute("type", "text/javascript");
	script.setAttribute("src", request);
	head.appendChild(script);
}

// Go to Redirect
function goNextLink() {
	//alert(NextLink);
	if (NextLink!='') {
			window.location.href = NextLink;
		}
	}
	
// Go to Survey Redirect
function goSurveyLink() {
	//alert(NextLink);
	if (NextLink!='') {
			window.location.href = NextLink;
			
			// Reset fields
			mdiv = document.getElementById("SRVYID");
			if (mdiv) {	mdiv.value = ""; }
			mdiv = document.getElementById("fld4");
			if (mdiv) {	mdiv.style.display = ""; }
			mdiv = document.getElementById("fldS");
			if (mdiv) {	mdiv.style.display = "none"; mdiv.innerHTML = ''; }
			mdiv = document.getElementById("Msg2");
			if (mdiv) {	mdiv.style.display = ""; mdiv.innerHTML = ''; }
			mdiv = document.getElementById("ErrMsg2");
			if (mdiv) {	mdiv.style.display = ""; mdiv.innerHTML = ''; }
		}
	}

// Reset screen
function resetExam() {

	mdiv = document.getElementById("ValMsg");
	if (mdiv) {
		mdiv.innerHTML = "Enter in the information requested below from your <i>exam voucher</i> and click <b>Proceed</b> to continue to the exam. ";
		mdiv.style.display = "";
		}
	mdiv = document.getElementById("fld1");
	if (mdiv) {
		mdiv.style.display = "";
		}
	mdiv = document.getElementById("fld2");
	if (mdiv) {
		mdiv.style.display = "";
		}
	mdiv = document.getElementById("fldN");
	if (mdiv) {
		mdiv.innerHTML = "";
		mdiv.style.display = "none";
		}
	mdiv = document.getElementById("Msg1");
	if (mdiv) {
		mdiv.innerHTML = "";
		mdiv.style.display = ""; 
		}
	mdiv = document.getElementById("ErrMsg");
	if (mdiv) {
		mdiv.innerHTML = "";
		mdiv.style.display = ""; 
		}	
	mdiv = document.getElementById("ExamData");
	if (mdiv) {
		mdiv.innerHTML = "";
		mdiv.style.display = ""; 
		}	
}

// Set cookie - for login
function SetCookie (name, value) {
  	var argv = SetCookie.arguments;
  	var argc = SetCookie.arguments.length;
  	var expires = (argc > 2) ? argv[2] : null;
  	var path = (argc > 3) ? argv[3] : null;
  	var domain = (argc > 4) ? argv[4] : null;
  	var secure = (argc > 5) ? argv[5] : false;
  	document.cookie = name + "=" + escape (value) +
    	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    	((path == null) ? "" : ("; path=" + path)) +
    	((domain == null) ? "" : ("; domain=" + domain)) +
    	((secure == true) ? "; secure" : "");
}

// Remove cookie
function DeleteCookie( name, path, domain ) {
 	document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

// Get base domain
function baseDomainString(){
  	e = document.domain.split(/\./);
  	if(e.length > 1) {
    	return(e[e.length-2] + "." +  e[e.length-1]);
  	}else{
    	return("");
  	}
}

// Parse parts of the phone number 
function parsePhone(phonenum) {
	var phMatch = /^\(?([1-9]\d{2})(\) ?|[.-])?(\d{3})[.-]?(\d{4})$/;
	var re=new RegExp(phMatch);
	var m=re.exec(phonenum);
	return m;
}

// Check to see if variable defined
function isdefined(variable)
{
	return (!(!( variable||false )))
}
 

