//SCORM2004function Scorm2004(){	this.SCORM_API = null;	this.APIVersion = "";	this.scoStartTime = 0;}Scorm2004.prototype.fGetAPI = function(win){	if ((win.parent != null) && (win.parent != win)){		this.SCORM_API = this.fFindAPI(win.parent);	}	if ((this.SCORM_API == null) && (win.opener != null)){		this.SCORM_API = this.fFindAPI(win.opener);	}	return this.SCORM_API;}// function searches for an object named API_1484_11Scorm2004.prototype.fFindAPI = function(win){	var nFindAPITries = 0;	var maxTries = 500;	while ((win.API_1484_11 == null) && (win.parent != null)&& (win.parent != win)){		nFindAPITries++;		if (nFindAPITries > maxTries){			return null;		}		win = win.parent;	}	return win.API_1484_11;}Scorm2004.prototype.fGetError = function(){	var errorCode = this.SCORM_API.GetLastError();	var errorString = "";	if(errorCode == 0){		errorString = "NoError";	}else{		errorString = this.SCORM_API.GetErrorString(errorCode);	}	return errorString}Scorm2004.prototype.fInitialize = function(){	var result = this.SCORM_API.Initialize("");	return result;}Scorm2004.prototype.fCommit = function(){	var result = this.SCORM_API.Commit("");	return result;}Scorm2004.prototype.fFinish = function(){	var result = this.SCORM_API.Terminate("");	return result;	}Scorm2004.prototype.fGetValue = function(variableName){	var result = this.SCORM_API.GetValue(variableName);	return result;}Scorm2004.prototype.fSetValue = function(variableName, valueString){	var result = this.SCORM_API.SetValue(variableName, valueString);	return result;}Scorm2004.prototype.fStartTimer = function(){	scoStartTime = new Date().getTime();}Scorm2004.prototype.fCalculateTime = function(){	var formattedTime;	if ( scoStartTime != 0 ){		var scoFinishTime = new Date().getTime();		var elapsedSeconds = ( (scoFinishTime - scoStartTime) / 1000 );		formattedTime = this.fGetTotalDuration( elapsedSeconds );	}else{		formattedTime = "0000:00:00.0";	}	return formattedTime}Scorm2004.prototype.fGetTotalDuration = function(totalSeconds){	var strTime="PT";	var Hour = Math.floor(totalSeconds/3600);	var Min = Math.floor((totalSeconds-Hour*3600)/60);	var Sec = totalSeconds-Hour*3600 - Min*60;	Sec=this.fSetDecimalPoints(Sec)	if(Hour<10){		strTime+="000";	}else if (Hour<100){		strTime+="00";	}else if (Hour<1000){		strTime+="0";	}else{		Hour=9999	}	strTime+= Hour + "H";	if(Min<10){		strTime+="0";	}	strTime+= Min + "M";	if(Sec<10){		strTime+="0";	}	strTime+= Sec+"S";	return strTime;}Scorm2004.prototype.fSetDecimalPoints = function(num){	var Numvalue = String (Math.round(num * 100) / 100);	var dot = Numvalue.indexOf(".");	if(dot == -1){		Numvalue += ".0";	}	var temp = Numvalue.split(".");	var addDecimals = 2 - temp[1].length;	for(i=1; i<= addDecimals; i++){		Numvalue += "0";	}	return Numvalue;};