	var myRank = "";
	var myFirstName = "";
	var myLastName = "";
	var myUsername = "";
	var myPassword1 = "";
	var myPassword2 = "";
	var myPassword = "";
	var passedChecks = true;
	var myPath = "";
	var myProgName = "et";
	var myProgID = "006";
	
	//module start sco const
	var cMod0End = 2;
	var cMod1End = 15;
	var cMod2End = 24;
	var cMod3End = 33;
	var cMod4End = 43;
	var cMod5End = 50;
	var cMod6End = 51;
	
	//number of SCOS in module
	var NUMSCOS = 40;

	//set session data by running checkUser
	//myTemp = checkUser();
	//alert(document.cookie);
	
	function checkAccess(myDir)
	{
		if (!checkUser())
			runError("access",myDir);
	}
	
	function checkUser()
	{
		var myReturn = false;
		myUsername = getCookieValue("username","");
		if (myUsername != "")
			myReturn = true;
		myKARTAUSER = getCookieValue("KU_" + myProgID + "_" + myUsername,"");
		myRank = getSubCookieValue("rank",myKARTAUSER,"");
		myFirstName = getSubCookieValue("fn",myKARTAUSER,"");
		myLastName = getSubCookieValue("ln",myKARTAUSER,"");
		return myReturn
	}
	
	function checkURL()
	{
		//check URL for username and password
		myUsername = getURLValue('username');
		myPassword = decrypt(getURLValue('password'), generateKey(),122,48);
		
		if ((myUsername != null) && (myPassword != null))
		{
			//need to log in user
			if (verifyUser())
			{
				setSessionCookie();
				location.href="menu.htm";
			}
			else
				runError("login","");
		}
	}
	
	function doLogin()
	{
		myUsername = document.f.username.value;
		myPassword = document.f.password.value;
		//myEncModKey = document.f.modulekey.value;
		myEncModKey = "";
		passedChecks = true;
		
		//verify fields are not blank
		if (myUsername == '')
		{
			passedChecks = false;
			//runError("empty","an Username");
		}
		if (myPassword == '')
		{
			passedChecks = false;
			//runError("empty","a Password");
		}
		
		if (verifyUser())
		{
			setSessionCookie();
			if (myEncModKey != "")
				decModule(myEncModKey);
			location.href="menu.htm";
		}
		else
			runError("login","");
		
	}
	
	function setSessionCookie()
	{
		if (navigator.cookieEnabled)
		{
			var myExpire = new Date ()
			var myKillDate = myExpire.getTime() - (365 * 24 * 60 * 60 * 1000) //expires in a year
			myExpire.setTime(myKillDate);
			document.cookie = "username=" + myUsername +"; path=" + myPath + ";" //expires=" + myExpire.toGMTString();
			//document.cookie = "rank=" + myRank +"; path=" + myPath + ";"
			//document.cookie = "first_name=" + myFirstName +"; path=" + myPath + ";"
			//document.cookie = "last_name=" + myLastName +"; path=" + myPath + ";"
		}
		else
			alert("You need to enable cookies in order for this training to work.");
	}
	
	function verifyUser()
	{
		//get cookie record for this user
		myKARTAUSER = getCookieValue("KU_" + myProgID + "_" + myUsername,"");
		if (myKARTAUSER != "")
		{		
			//found user, now need to verify password and parse data
			if (myPassword != decrypt(getSubCookieValue("pwd",myKARTAUSER,""), generateKey(),122,48))
				return false;
			myRank = getSubCookieValue("rank",myKARTAUSER,"");
			myFirstName = getSubCookieValue("fn",myKARTAUSER,"");
			myLastName = getSubCookieValue("ln",myKARTAUSER,"");
			return true;
		}
		return false;
	}
	
	function doRegister()
	{
		passedChecks = true;
		
		//get reg info from form
		myRank = document.f.rank.value;
		myFirstName = document.f.first_name.value;
		myLastName = document.f.last_name.value;
		myUsername = document.f.username.value;
		myPassword1 = document.f.password1.value;
		myPassword2 = document.f.password2.value;
		
		//verify fields are not blank
		if (myRank == '')
		{
			passedChecks = false;
			runError("empty","your Rank");
		}
		if (myFirstName == '')
		{
			passedChecks = false;
			runError("empty","your First Name");
		}
		if (myLastName == '')
		{
			passedChecks = false;
			runError("empty","your Last Name");
		}
		if (myUsername == '')
		{
			passedChecks = false;
			runError("empty","an Username");
		}
		if ((myPassword1 == '') || (myPassword2 == ''))
		{
			passedChecks = false;
			runError("empty","a Password");
		}
		
		//verify passwords
		if (myPassword1 != myPassword2)
		{
			passedChecks = false;
			runError("passwords","");
			document.f.password1.value = "";
			document.f.password2.value = "";
		}
		//encode password
		myPassword1 = encrypt(myPassword1, generateKey(),122,48);

		//verify username is not in use
		if (dupUsername(myUsername))
		{
			passedChecks = false;
			runError("dupUser","");
		}
				
		//save info to cookie if passed checks
		if (passedChecks)
		{
			//register info
			myKey = "KU_" + myProgID + "_" + myUsername;
			myValue = "rank|" + myRank + "&fn|" + myFirstName + "&ln|" + myLastName + "&pwd|" + myPassword1;
			myValue = addSCOs(myValue,NUMSCOS);
			myCookie = myKey + "=" + myValue
			if (navigator.cookieEnabled)
			{
				var myExpire = new Date ()
				var myKillDate = myExpire.getTime() + (365 * 24 * 60 * 60 * 1000) //expires in a year
				myExpire.setTime(myKillDate);
				
				document.cookie = myCookie + "; expires=" + myExpire.toGMTString() + " path=" + myPath;
				alert("Registration Complete!");
				location.href="relogin.htm?username=" + myUsername + "&password=" + myPassword1;
			}
			else
				alert("You need to enable cookies in order for this training to work.");
		}
	}
	
	function dupUsername(myname)
	{
		//check to see if this user is in cookie, return true if so.
		if (getCookieValue("KU_" + myProgID + "_" + myname,"") == null)
			return true;
		else
			return false;
	}
	
	function getSCOStatus(myTempSCO)
	{
		//set all SCO info to na
		myTempStatus = "na";
		
		myKARTAUSER = getCookieValue("KU_" + myProgID + "_" + myUsername,"");
		if (myKARTAUSER != "")
		{		
			//found user, now get each SCO's status
			myTempStatus = getSubCookieValue(myTempSCO,myKARTAUSER,"");
		}
		return myTempStatus;
	}
	
	function getModComplete(myStartSCO, myEndSCO)
	{
		for (l = myStartSCO; l < myEndSCO + 1; l++)
		{
			if (getSCOStatus(convertSCONum(l)) != "c")
				return false;
		}
		return true;
	}
	
	function setModComplete(myStartSCO, myEndSCO)
	{
		for (l = myStartSCO; l < myEndSCO + 1; l++)
		{
			setSCOStatus(convertSCONum(l),"c");
		}
	}
	
	function setSCOStatus(mySCO,myStatus)
	{
		var myPos = -1;
		var myTempKey = "";
		var myTempVal = "";
		
		//get cookie
		myTempKey = "KU_" + myProgID + "_" + myUsername;
		myTempVal = getCookieValue(myTempKey,"");
		if (myTempVal != "")
		{
			myPos = myTempVal.indexOf(mySCO+"|");
			if (myPos > -1)
			{
				myFP = myTempVal.substring(0,(myPos+4));
				myLP = myTempVal.substring((myPos+4),myTempVal.length);
				//clear out old value and add new
				if (myLP.indexOf('&') > 0)
					myLP = myStatus + myLP.substring(myLP.indexOf('&'),myLP.length);
				else
					myLP = myStatus;
				
				//put myValue back together
				myTempVal = myFP + myLP;
			}
			myCookie = myTempKey + "=" + myTempVal;
			//alert(myCookie);
			if (navigator.cookieEnabled)
			{
				var myExpire = new Date ()
				var myKillDate = myExpire.getTime() + (365 * 24 * 60 * 60 * 1000) //expires in a year
				myExpire.setTime(myKillDate);
				document.cookie = myCookie + "; expires=" + myExpire.toGMTString() + "; path=" + myPath;
			}
		}
		else
			alert(runError("lms"));
	}
	
	function addSCOs(myValue,numSCOs)
	{
		for (i = 1; i < numSCOs + 1; i++)
		{
			myValue += "&" + convertSCONum(i) + "|na";
		}
		return myValue
	}
	
	function runSCO(myDir,mySCONum)
	{
		location.href = myDir + "/start.htm?filelms=1&status=" + getSCOStatus(mySCONum) + "&sco=" + mySCONum;
	}

	function encModule()
	{
	
		myModKey = "";
		myNumComp = 0;
		
		for (k=0;k<6;k++)
		{
			var mySSCO = eval("cMod" + k + "End") + 1;
			var myESCO = eval("cMod" + (k+1) + "End");
		
			if (getModComplete(mySSCO, myESCO))
			{
				myModKey += "C";
				myNumComp += 1;
			}
			else
				myModKey += "I";
		}

		return encrypt(myModKey.substr(0,myNumComp) + "Z" + myModKey.substr(myNumComp,myModKey.length), myLastName + "KARTAUSER" + myProgID,90,65);
	}
	
	function decModule(myEncModKey)
	{
		var myError = false;
		var myTempNumComp = 0;
		
		//decrypt key
		var myModKey = decrypt(myEncModKey,myLastName + "KARTAUSER" + myProgID,90,65);
		
		//get numcomp
		var myNumComp = myModKey.indexOf("Z",0);
		//get completion w/o validator		
		myModKey = myModKey.substr(0,myNumComp) + myModKey.substr(myNumComp+1,myModKey.length);

		//Validate key
		for (i=0;i<6;i++)
		{
			myTempChar = myModKey.substr(i,1);
			if (myTempChar == "C")
				myTempNumComp += 1
			else
			{
				if (myTempChar != "I")
					myError=true;
			}
		}
		if (myTempNumComp != myNumComp)
			myError = true;
		
		if (myError)
		{
			alert("Error! Invalid Module Key!\nModule info not updated!");
			//parent.location.href = "login.htm";
		}
		else
		{
			//update sco status for modules
			var mySSCO = 0;
			var myESCO = 0;	
			for (k=0;k<6;k++)
			{
				myTempChar = myModKey.substr(k,1);
				if (myTempChar == "C")
				{
					mySSCO = eval("cMod" + k + "End") + 1;
					myESCO = eval("cMod" + (k+1) + "End");
					setModComplete(mySSCO, myESCO);
				}
			}
		}
	}
	
	function showCert()
	{
	var myTempUser = getCookieValue("username","");
	var myTempPwd = getSubCookieValue("pwd",getCookieValue("KU_"+myProgID+"_"+myTempUser,""),"");
		//show cert
	CertWin=open("certificate.htm","CerttWin","scrollbars=no,resizeable=no,width=720,height=540,toolbar=no,directories=no,menubar=yes,status=yes,");
	location.href="relogin.htm?username=" + myTempUser + "&password=" + myTempPwd;
	}
	
	

