//////////////////////////////////////////////////////////////////////////////////////
//WINNOV - J DOMOTO
//This script file contains everything relating to SCORM
//////////////////////////////////////////////////////////////////////////////////////

//BEGIN VARS
var g_SCORMAPI=null;
var g_SCORMStartTime=0;
var g_SCORMHitRoot=0;
//END VARS

//////////////////////////////////////////////////////////////////////////////////////

//BEGIN SCORM FUNCTIONS
function ScormInitialize()
{	
	//find api
	if(g_SCORMAPI==null)
	{
		g_SCORMAPI= FindLMSAPI();
		if(g_SCORMAPI!=null)
		{
			//initialize
			g_SCORMAPI.LMSInitialize("");
		
	
			//set lesson status
			if(g_SCORMAPI.LMSGetValue("cmi.core.lesson_status")!="complete")
				g_SCORMAPI.LMSSetValue("cmi.core.lesson_status","incomplete");
	
			//get starting time
			var StartTime=g_SCORMAPI.LMSGetValue("cmi.core.lesson_location");
			if(StartTime!="")
			{
				g_SCORMStartTime=parseFloat(StartTime);
			}
			else
			{
				g_SCORMStartTime=0;
			}

		}
		return g_SCORMStartTime;
	}
	else
	{
		return null;
	}
}


function ScormTerminate(pos)
{
	if(g_SCORMAPI)
	{
		//set the finish time
		g_SCORMAPI.LMSSetValue("cmi.core.lesson_location",pos);
		
		//terminate
		g_SCORMAPI.LMSFinish("");
		g_SCORMAPI=null;
	}
}

function ScormStartPosition()
{
	return g_SCORMStartTime;
}

function ScormEndOfContent()
{
	if(g_SCORMAPI)
	{
		g_SCORMAPI.LMSSetValue("cmi.core.lesson_status","completed");
	}
}
//END SCORM FUNCTIONS

//////////////////////////////////////////////////////////////////////////////////////

//BEGIN UTILITY FUNCTIONS
function FindLMSAPI()
{	
	api=SearchLMSAPI(window);
	if(api!=null)
		return api;
	return null;
}

function SearchLMSAPI(win)
{

	var api,iframe;
	try
	{
		if(win.opener==null&&(win.parent==null||win.parent==win))
			g_SCORMHitRoot=1;
		if(win.API !=null)
		{
			return win.API;
		}
		else if(!g_SCORMHitRoot&&win.parent!=null&&win.parent!=win)
		{
			api=SearchLMSAPI(win.parent);
			if(api!=null)
				return api;
		}
		else if(!g_SCORMHitRoot&&win.opener!=null)
		{
			api=SearchLMSAPI(win.opener);
			if(api!=null)
				return api;
		}
		else if(win.frames.length>0)
		{
			for(iframe=0;iframe<win.frames.length;iframe++)
			{
				api=SearchLMSAPI(win.frames[iframe]);
				if(api!=null)
					return api;
			}
		}
	}
	catch(e)
	{}
	return null;
}
//END UTILITY FUNCTIONS