\n'); } else { g_intAPIType = 1; } var strURLFile = "bhpb_csmtm1_010_overview_skin.swf"; // Name of the flash file var intIntervalSecs = 1; // Number of seconds to wait for SCORM API to load var g_intAPIOrder = 0; // Way to search for API object (0 - starts with bottom up; 1 - starts top down) var strURLBase = ""; var strURLParams = ""; var strURLFull = document.location + ""; var intTemp = strURLFull.indexOf("#"); if (intTemp == -1) intTemp = strURLFull.indexOf("?"); if (intTemp > 0) strURLParams = strURLFull.substring(intTemp + 1, strURLFull.length); var strTemp = location.protocol.toUpperCase(); if (strTemp.indexOf("FILE") == -1) var intTemp = location.pathname.lastIndexOf("/"); else var intTemp = location.pathname.lastIndexOf("\\"); if (intTemp != -1) strURLBase = location.protocol + "//" + location.host + location.pathname.substring(0, intTemp + 1); else strURLBase = location.protocol + "//" + location.host + location.pathname; strURLParams = (strURLParams==unescape(strURLParams)?escape(strURLParams):strURLParams); strURLParams = (strURLParams==""?"":"?") + strURLParams; // AEC: CUSTOM VARIABLES var intLMSScoreMax = ""; var intLMSScoreMin = ""; var intLMSScoreRaw = ""; var intLMSScorePercent = ""; var intLMSScoreMastery = ""; var strLMSStatus = ""; var strLMSLocation = ""; var strLMSTime = ""; var strLMSSuspendData = ""; var strLMSChildren = ""; // AEC: END CUSTOM VARIABLES // AEC: CUSTOM FUNCTIONS function sendTrackingDataToLMS() { if ((isAPI()) && (g_bFinishDone == false)) { // send data if (g_zAPIVersion=="0.2") { strErr = g_objAPI.LMSSetValue('cmi.core.score.raw', intLMSScoreRaw); strErr = g_objAPI.LMSSetValue('cmi.core.score.max', intLMSScoreMax); strErr = g_objAPI.LMSSetValue('cmi.core.score.min', intLMSScoreMin); strErr = g_objAPI.LMSSetValue('cmi.core.lesson_status', strLMSStatus); strErr = g_objAPI.LMSSetValue('cmi.core.lesson_location', strLMSLocation); strErr = g_objAPI.LMSSetValue('cmi.core.session_time', strLMSTime); strErr = g_objAPI.LMSSetValue('cmi.suspend_data', strLMSSuspendData); } else { strErr = g_objAPI.SetValue('cmi.score.raw', intLMSScoreRaw); strErr = g_objAPI.SetValue('cmi.score.max', intLMSScoreMax); strErr = g_objAPI.SetValue('cmi.score.min', intLMSScoreMin); if(strLMSStatus == "completed" || strLMSStatus == "incomplete") { strErr = g_objAPI.SetValue('cmi.completion_status', strLMSStatus); } else { strErr = g_objAPI.SetValue('cmi.success_status', strLMSStatus); } strErr = g_objAPI.SetValue('cmi.location', strLMSLocation); strErr = g_objAPI.SetValue('cmi.session_time', strLMSTime); strErr = g_objAPI.SetValue('suspend_data', strLMSSuspendData); } // uncomment the next line to get a look at the data being sent to the server at the end of a lesson //alert('getting: \rChildren: \r' + strLMSChildren + '\rsetting: \r' + 'Raw score = ' + intLMSScoreRaw + '\r' + 'Max score = ' + intLMSScoreMax + '\r' + 'Min score = ' + intLMSScoreMin + '\r' + 'Status = ' + strLMSStatus + '\r' + 'Location = ' + strLMSLocation + '\r' + 'Time = ' + strLMSTime + '\r' + 'Suspend Data = ' + strLMSSuspendData); } } // AEC: END CUSTOM FUNCTIONS function Finish() { if ((isAPI()) && (g_bFinishDone == false)) { // AEC: ADDITIONAL BEHAVIOR (NO ERROR CHECKING DONE - BUT IT SHOULD BE) sendTrackingDataToLMS(); (g_zAPIVersion=="0.2"?g_objAPI.LMSCommit(""):g_objAPI.Commit("")); g_bFinishDone = (g_zAPIVersion=="0.2"?g_objAPI.LMSFinish("") == "true":g_objAPI.Terminate("") == "true"); } return (g_bFinishDone + "" ) // Force type to string } if(g_intAPIType==0) { // Detect Internet Explorer var g_bIsInternetExplorer = navigator.appName.indexOf("Microsoft") != -1; // Handle fscommand messages from a Flash movie function Captivate_DoFSCommand(command, args) { var CaptivateObj = g_bIsInternetExplorer ? Captivate : document.Captivate; var strFSArgs = new String(args); var strFSCmd = new String(command); var strErr = "true"; var strFSArg1, strFSArg2, strFSArg3 var intFSDelimiter = strFSArgs.indexOf("|"); if (intFSDelimiter > -1) { strFSArg1 = strFSArgs.substr(0, intFSDelimiter); // Name of data element to get from API var strFSTemp = strFSArgs.substr(intFSDelimiter + 1); intFSDelimiter = strFSTemp.indexOf("|"); if(intFSDelimiter > -1) { strFSArg2 = strFSTemp.substr(0, intFSDelimiter); // Value strFSArg3 = strFSTemp.substr(intFSDelimiter + 1); // Variable } else { strFSArg2 = strFSTemp; } } else { strFSArg1 = strFSArgs; } // do nothing, if SCORM API is not available if (!isAPI()) return; if ( strFSCmd == "LMSInitialize" || strFSCmd=="Initialize") { strErr = eval('g_objAPI.' + strFSCmd + '(\"\");'); CaptivateObj.SetVariable(strFSArg3, strErr); } else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") { // AEC: OVERRIDE BEHAVIOR if(strFSArg1.indexOf("raw") > -1) { intLMSScoreRaw = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("max") > -1) { intLMSScoreMax = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("min") > -1) { intLMSScoreMin = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("lesson_status") > -1) { strLMSStatus = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("lesson_location") > -1) { strLMSLocation = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("suspend_data") > -1) { strLMSSuspendData = strFSArg2; strErr = ""; } else if (strFSArg1.indexOf("session_time") > -1) { strLMSTime = strFSArg2; strErr = ""; } else { strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\",\"' + strFSArg2 + '\");'); } // AEC: END OVERRIDE BEHAVIOR CaptivateObj.SetVariable(strFSArg3, strErr); } else if ( strFSCmd == "LMSFinish" || strFSCmd=="Terminate") { Finish(); //g_bFinishDone = eval('g_objAPI.' + strFSCmd + '(\"\");') strErr = g_bFinishDone; CaptivateObj.SetVariable(strFSArg3, g_bFinishDone); } else if ( strFSCmd == "LMSCommit" || strFSCmd=="Commit") { // AEC: OVERRIDE BEHAVIOR //strErr = eval('g_objAPI.' + strFSCmd + '(\"\");'); strErr = ""; // AEC: END OVERRIDE BEHAVIOR CaptivateObj.SetVariable(strFSArg3, strErr); } else if ((strFSArg2) && (strFSArg2.length > 0)) { //if(strFSCmd=="LMSGetLastError") if(strFSCmd=="LMSGetLastError" || strFSCmd=="GetLastError") { // AEC: OVERRIDE BEHAVIOR //strErr = eval('g_objAPI.' + strFSCmd + '();') strErr = 0; // AEC: END OVERRIDE BEHAVIOR CaptivateObj.SetVariable(strFSArg3, strErr); } else { strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\");') if(strFSArg1.indexOf("_children") > -1) { strLMSChildren += 'g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\")' + ' = ' + strErr + '\r'; } CaptivateObj.SetVariable(strFSArg3, strErr); } } else if (strFSCmd.substring(0,3) == "LMSGet") { strErr = "-2: No Flash variable specified" } return strErr; } }