// 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 = '';
//sessvars.$.debug();

// 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 checklogin()
{
	// Retrieve credentials from cookies or session variables
	retrCredentials();
	
	// Update display
	fullURL = parent.document.URL;
	cmd = fullURL.substring(fullURL.indexOf('?')+1, fullURL.length)
	//alert(cmd);
	
	if (uid)
		{
			mdiv = document.getElementById("loginmsg");
			if (mdiv) {
				mdiv.style.display = "none";
			}
			mdiv = document.getElementById("logonmsg");
				if (mdiv) { mdiv.style.display = "";
			}
			mdiv = document.getElementById("logoutmsg");
			if (mdiv) {
				mdiv.style.display = "";
				mdiv.innerHTML = "<br><center>You are logged in.</center>"
			}
			loggedIn = true;
			checkRedirect(uid,sessid);
		}
	else
		{ 
			mdiv = document.getElementById("logonmsg");
			if (mdiv) {
				mdiv.innerHTML = "&nbsp; Login to access your<br>&nbsp; <a href='support.shtml' class='revlink'>Personal Training Portal</a>";
				}		
			mdiv = document.getElementById("loginmsg");
			if (mdiv) {
				mdiv.style.display = "";
				}
			mdiv = document.getElementById("logoutmsg");
			if (mdiv) {
				mdiv.style.display = "none";
				}
			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 = '';
		mdiv = document.getElementById("loginmsg");
		if (mdiv) {
			mdiv.style.display = "";
			}
		mdiv = document.getElementById("logoutmsg");
		if (mdiv) {
			mdiv.style.display = "none";
			}
		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
		//alert('no cookie sessvars uid: ' + sessvars.CIS_uid)
		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') {
			// Set cookies
			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
		//alert('cookies sessvars uid: ' + sessvars.CIS_uid)
		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; }
			if (sessvars.CIS_cmd == null || sessvars.CIS_cmd != '') { sessvars.CIS_cmd = ''; }
			}
	}
}

// Dynamic tag logout
function dynamicLogout() {
	if (uid!='') {
		var request = "https://w1.certegrity.com/ps.nsf/WsLogout?OpenAgent&UID="
                     + uid + "&SES=" + sessid + "&HP=" + hosting + "&callback=getLogout"; }
	else
		{ var request = "" }	
	DeleteCookie("ID","/",hosting);
	DeleteCookie("Sess","/",hosting);
	sessvars.$.clearMem()
	sessvars.$.flush()
	sessvars.CIS_cmd = 'logout';
	uid = '';
	sessid='';
	errmsg = '';
	mdiv = document.getElementById("Greeting");
	if (mdiv) { 
		mdiv.style.display = "";
		mdiv.innerHTML = "" ;
		}
	mdiv = document.getElementById("loginmsg");
	if (mdiv) {
		mdiv.style.display = "";
		}
	mdiv = document.getElementById("logoutmsg");
	if (mdiv) {
		mdiv.style.display = "none";
		}
	mdiv = document.getElementById("logonmsg");
	if (mdiv) { 
		mdiv.style.display = "";
		mdiv.innerHTML = "&nbsp; Login to access your<br>&nbsp; <a href='support.shtml' class='revlink'>Personal Training Portal</a>";
		}
		
	loggedIn = false;
	//window.location.href = logout;
	
	if (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);
		window.location.href = "http://www.gettips.com/logout.shtml";
		}
}

// Dynamic tag login function
function dynamicLogin() {

	var username = escape(document.getElementById('username').value);
	//alert(username);
	var 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()
{
	//alert("You r here");
	lastname = escape(document.getElementById('lastname').value);
	emailaddr = escape(document.getElementById('emailaddr').value);
	//alert("");
	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);
}

// 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 )))
}
 
 function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


