	
	// SCORM API
	
	function scormAPI(){
		//methods
		this.LMSInitialize = LMSInitialize;
		this.LMSFinish = LMSFinish;
		this.LMSGetValue = LMSGetValue;
		this.LMSSetValue = LMSSetValue;
		this.LMSCommit = LMSCommit;
		this.LMSGetLastError = LMSGetLastError;
		this.LMSGetErrorString = LMSGetErrorString;
		this.LMSDiagnostic = LMSGetDiagnostic;
	}
	
	var API = new scormAPI();
	
	function LMSInitialize(emptyString){
		itemNum = newitemNum;
		var temp = menuFrame.showRecord(itemNum - 1, 1);
		var tempImgID = "itemIcon" + (itemNum - 1);
	         if ( temp == "F" ) {
	         
	            // attempts
	            var tempAttempts = menuFrame.showRecord(getItemNum() - 1, 2);
	
	            var tempTime = menuFrame.showRecord(getItemNum() - 1, 6);
	            arrRecords[itemNum - 1] = ":N:0::::000000:::::";
	            menuFrame.setRec(2, tempAttempts);
	            menuFrame.setRec(6, tempTime);
	
	            parent.frames['menuFrame'].document.images[tempImgID].src = "<img src=\"images/treemenu/"+menuFrame.completedIcon[0]+"\" border=0>";
	         }
	         else if ( (temp == "P") || (temp == "C") ) {
	           menuFrame.setRec(10, "R");
	         }
	         
	    startTimer();
		myAddAttempts = 1;
		
		return true;
	}
	
	function LMSFinish(){
		return true;
	}
	
	function LMSGetValue(name){
		switch( name ) {
		    case "cmi.core._children":
			return "student_id,student_name,lesson_location,credit,lesson_status,entry,sscore,total_time,exit,session_time";
			break;
		    case "cmi.core.student_id":
			return Math.round(Math.random()*100000);
			break;
		    case "cmi.core.student_name":
			return userName + "..CM..";
			break;
		    case "cmi.core.lesson_location": //index 0
			return unescape(menuFrame.showRecord(getItemNum() - 1, 0));
			break;
		    case "cmi.core.credit":
			return "credit";
			break;
		    case "cmi.core.lesson_status": //index 1
			var temp = menuFrame.showRecord(getItemNum() - 1, 1);
	
			switch( temp ) {
			   case "P":
				return "passed";
				break;
			   case "C":
				return "completed";
				break;
			   case "F":
				return "failed";
				break;
			   case "I":
				return "incomplete";
				break;
			   case "B":
				return "browsed";
				break;
			   case "N":
				return "not attempted";
				break;
			}
			break;
		    case "cmi.core.entry":
			return "";
			break;
		    case "cmi.core.score._children":
			return "raw,min,max";
			break;
		    case "cmi.core.score.raw": //index 3
			return menuFrame.showRecord(getItemNum() - 1, 3);
			break;
		    case "cmi.core.score.min": //index 4
			return menuFrame.showRecord(getItemNum() - 1, 4);
			break;
		    case "cmi.core.score.max": //index 5
			return menuFrame.showRecord(getItemNum() - 1, 5);
			break;
		    case "cmi.core.total_time": //index 6
		        var tempTime = menuFrame.showRecord(getItemNum() - 1, 6);
			return tempTime.substring(0,2) + ":" + tempTime.substring(2,4) + ":" + tempTime.substring(4,6);
			break;
		    case "cmi.core.lesson_mode":
	   		var temp = menuFrame.showRecord(getItemNum() - 1, 10);
			switch( temp ) {
			   case "R":
				return "review";
				break;
			   default:
				return "normal";
				break;
	                }
			break;
		    case "cmi.suspend_data": //index 7
				return unescape(menuFrame.showRecord(getItemNum() - 1, 7));
			break;
		    case "cmi.launch_data":
				return "";
			break;
		    case "cmi.core.session_time":
		        var tempTime = menuFrame.showRecord(getItemNum() - 1, 9);
				return tempTime.substring(0,2) + ":" + tempTime.substring(2,4) + ":" + tempTime.substring(4,6);
			break;
		    case "cmi.interactions._children":
				return "";
			break;
	
		    default:
			return "";
			break;
		}
	
	}
	
	function LMSSetValue(name, value){
		//set value
	        if ( menuFrame.showRecord(getItemNum() - 1, 10) != "R" ) {
	
	        var tempImgID = "itemIcon" + (itemNum - 1);
	        if(searchWVisible) {
		        var searchImgID = "searchIcon" + (itemNum);
	        }
	
		switch( name ) {
		    case "cmi.core.lesson_location":
				menuFrame.setRec(0, escape(value));
			break;
		    case "cmi.core.exit": //index 8
		    	if(value == "logout") location.reload();
				menuFrame.setRec(8, value);
				break;
		    case "cmi.core.session_time": //index 9
				menuFrame.setRec(9, value.replace(/:/g,""));
				break;
		    case "cmi.core.lesson_status":
			switch( value ) {
			   case "passed":
				menuFrame.setRec(1, "P");
				parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[4];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[4];
				}
				break;
			   case "completed":
				menuFrame.setRec(1, "C");
	            parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[0];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[0];
				}
				break;
			   case "failed":
				menuFrame.setRec(1, "F");
				parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[3];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[3];
				}
	            break;
			   case "incomplete":
				menuFrame.setRec(1, "I");
				parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[1];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[1];
				}
				break;
			   case "browsed":
				menuFrame.setRec(1, "B");
				parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[1];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[1];
				}
				break;
			   case "not attempted":
				menuFrame.setRec(1, "N");
	            parent.frames['menuFrame'].document.images[tempImgID].src = "images/treemenu/"+menuFrame.completedIcon[0];
				if(searchWVisible) {
					parent.frames['menuFrame'].document.images[searchImgID].src = "images/treemenu/"+menuFrame.completedIcon[0];
				}
				break;
			}
			break;
		    case "cmi.core.score.raw":
				menuFrame.setRec(3, value);
			break;
		    case "cmi.core.score.min":
				menuFrame.setRec(4, value);
			break;
		    case "cmi.core.score.max":
				menuFrame.setRec(5, value);
			break;
		    case "cmi.suspend_data":
				menuFrame.setRec(7, escape(value));
			break;
		    default:
				return "";
			break;
			
		}
	
	     }
	
	     
		LMSCommit();
		menuFrame.setCookie();	     
		startTimer();
	return true;
	}
	
	function LMSCommit(){
	 //commit
		if ( menuFrame.showRecord(getItemNum() - 1, 10) != "R" ) {
	
			var newTotal = "00:00:00";
			var totSeconds = 0;
	
			// attempts
			
			prevAttempts = menuFrame.showRecord(getItemNum() - 1, 2);
	
			menuFrame.setRec(2, parseInt(prevAttempts) + myAddAttempts);
			myAddAttempts = 0;
			
			var currentTotal = menuFrame.showRecord(getItemNum() - 1, 6);
	
			var sessionTime =  computeTime().replace(/:/g,"");//menuFrame.showRecord(getItemNum() - 1, 9);
	
			var totSeconds = (parseFloat(currentTotal.substring(0,2)) + parseFloat(sessionTime.substring(0,2)))*3600 + (parseFloat(currentTotal.substring(2,4)) + parseFloat(sessionTime.substring(2,4)))*60  + (parseFloat(currentTotal.substring(4,6)) + parseFloat(sessionTime.substring(4,6)));
	
			newTotal = convertTotalSeconds(totSeconds);
			
			menuFrame.setRec(6, newTotal.replace(/:/g,""));
			
		}
	
		return true;
	
	}
	
	function LMSGetLastError(){
		var _NoError = 0;
		return _NoError;
	}
	
	function LMSGetErrorString(errorCode){
		return "";
	}
	
	function LMSGetDiagnostic(errorCode){
		return "";
	}
	
	function LMSIsInitialized(){
		return true;
	}
	
	function convertTotalSeconds(ts)
	{
		var Sec = (ts % 60);
		ts -= Sec;
		var tmp = (ts % 3600);  //# of seconds in the total # of minutes
		ts -= tmp;              //# of seconds in the total # of hours
		if ( (ts % 3600) != 0 ) var Hour = "00" ;
		else var Hour = ""+ (ts / 3600);
		if ( (tmp % 60) != 0 ) var Min = "00";
		else var Min = ""+(tmp / 60);
	
		Sec=""+Sec
		
		if ( Sec.indexOf(".") >=0 ) {
			Sec=Sec.substring(0,Sec.indexOf("."))
		}
		
		if (Hour.length < 2)Hour = "0"+Hour;
		if (Min.length < 2)Min = "0"+Min;
		if (Sec.length <2)Sec = "0"+Sec;
	
			var rtnVal = Hour+":"+Min+":"+Sec;
		return rtnVal;
	}
	

	function startTimer()
	{
	   startDate = new Date().getTime();
	}
			
	function computeTime()
	{
	var formattedTime = "00:00:00.0";
	if ( startDate != 0 )
		{
		var currentDate = new Date().getTime();
		var elapsedSeconds = ( (currentDate - startDate) / 1000 );
		formattedTime = convertTotalSeconds( elapsedSeconds );
		}
	
		return formattedTime;
	}	
	

