\n'); document.write('\n'); //} else { // g_intAPIType = 1; //} var strURLFile = "Centreport_HS.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("#"); var strName = ""; var strCompany = ""; var strEmail = ""; var strPhone = ""; var strEmailURL = "./sendMail.asp"; var strEMailTo = "healthandsafety@centreport.co.nz"; //var strEMailTo = "robert.owen@equator.co.nz"; var strEMailFrom = "healthandsafety@centreport.co.nz"; var strEMailFromName = "CentrePort"; var strEMailSubject = "Health and Safety Quiz Results"; var strEMailHeader = 'to=' + strEMailTo + '&from=' + strEMailFrom + '&subject=' + strEMailSubject + '&body='; var strEMailBody = 'The following person has passed the Health and Safety Quiz' + "\r\n"; 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 tracking variables - Begin var intLMSScoreMax = ""; var intLMSScoreMix = ""; var intLMSScoreRaw = ""; var intLMSScorePercent = ""; var intLMSScoreMastery = ""; var strLMSStatus = ""; var strLMSLocation = ""; var strLMSTime = ""; var strLMSSuspendData = ""; var lstInteractions = []; g_objAPI = window; // AEC: By setting g_objAPI to anything but null or undefined, nothing in the scorm_support.js has to change // AEC: Custom tracking variables - End // AEC: Custom tracking functions - Begin function sendTrackingDataToLMS() { if ((isAPI()) && (g_bFinishDone == false)) { if (intLMSScoreMax < 100) { intLMSScorePercent = (intLMSScoreRaw / intLMSScoreMax) * 100 } else { intLMSScorePercent = intLMSScoreRaw; } // AEC: It is possible to override the status based on score, status, etc - this file does NOT intepret or override the status/score var strResults = ''; strResults += 'RAW Score: ' + intLMSScoreRaw + "\r\n"; strResults += 'Max Score: ' + intLMSScoreMax + "\r\n"; strResults += 'Min Score: ' + intLMSScoreMin + "\r\n"; strResults += 'Status: ' + strLMSStatus + "\r\n"; strResults += 'Location: ' + strLMSLocation + "\r\n"; strResults += 'Time: ' + strLMSTime + "\r\n"; strResults += 'Suspend Data: ' + strLMSSuspendData + "\r\n"; strResults += 'Interactions: ' + lstInteractions.toString() + "\r\n"; strEMailBody += strName + "\r\n"; strEMailBody += strCompany + "\r\n"; strEMailBody += strEmail + "\r\n"; strEMailBody += strPhone + "\r\n"; strEMailHeader += escape(strEMailBody); makeHTTPRequest(strEmailURL, 'sendMail', strEMailHeader, "POST"); } } // AEC: Custom tracking functions - End function Finish() { strName = document.getElementById('Captivate').cpGetValue('vName'); strCompany = document.getElementById('Captivate').cpGetValue('vCompany'); strEmail = document.getElementById('Captivate').cpGetValue('vEmail'); strPhone = document.getElementById('Captivate').cpGetValue('vPhone'); if ((isAPI()) && (g_bFinishDone == false)) { // AEC: Custom tracking override - Begin // AEC: No error checking done - but there probably should be sendTrackingDataToLMS(); g_bFinishDone = true; // AEC: Custom tracking override - End } // 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") { // AEC: Custom tracking override - Begin CaptivateObj.SetVariable(strFSArg3, 'true'); // AEC: Custom tracking override - End } else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") { // AEC: Custom tracking override - Begin if(strFSArg1.indexOf("raw") > -1) { intLMSScoreRaw = strFSArg2; } else if (strFSArg1.indexOf("max") > -1) { intLMSScoreMax = strFSArg2; } else if (strFSArg1.indexOf("min") > -1) { intLMSScoreMin = strFSArg2; } else if (strFSArg1.indexOf("lesson_status") > -1) { strLMSStatus = strFSArg2; } else if (strFSArg1.indexOf("lesson_location") > -1) { strLMSLocation = strFSArg2; } else if (strFSArg1.indexOf("suspend_data") > -1) { strLMSSuspendData = strFSArg2; } else if (strFSArg1.indexOf("session_time") > -1) { strLMSTime = strFSArg2; } if (strFSArg1.indexOf('cmi.interactions') > -1) { if (strFSArg1.indexOf('id') > -1) { intTemp = lstInteractions.length; lstInteractions[intTemp] = ""; lstInteractions[intTemp] = "id = " + strFSArg2; } else { intTemp = lstInteractions.length - 1; strTemp = strFSArg1.substring(strFSArg1.lastIndexOf('.') + 1); lstInteractions[intTemp] += "; " + strTemp + " = " + strFSArg2; } } strErr = ""; // AEC: Custom tracking override - End CaptivateObj.SetVariable(strFSArg3, strErr); } else if ( strFSCmd == "LMSFinish" || strFSCmd=="Terminate") { // AEC: Custom tracking override - Begin g_bFinishDone = Finish(); // AEC: Custom tracking override - End strErr = g_bFinishDone; CaptivateObj.SetVariable(strFSArg3, g_bFinishDone); } else if ( strFSCmd == "LMSCommit" || strFSCmd=="Commit") { // AEC: Custom tracking override - Begin strErr = 'true'; // AEC: Custom tracking override - End CaptivateObj.SetVariable(strFSArg3, strErr); } else if ((strFSArg2) && (strFSArg2.length > 0)) { if(strFSCmd=="LMSGetLastError") { // AEC: Custom tracking override - Begin strErr = 0; // AEC: Custom tracking override - End CaptivateObj.SetVariable(strFSArg3, strErr); } else { // AEC: Custom tracking override - Begin if(strFSArg1.indexOf('cmi.core._children') > -1) { strErr = 'student_id,student_name,lesson_location,credit,lesson_status,entry,score,total_time,lesson_mode,exit,session_time'; } else if (strFSArg1.indexOf('cmi.core.score._children') > -1) { strErr = 'raw,min,max'; } else if (strFSArg1.indexOf('cmi.interactions._children') > -1) { strErr = 'id,objectives,time,type,correct_responses,weighting,student_response,result,latency'; } else if (strFSArg1.indexOf('_count') > -1) { strErr = 0; } else if (strFSArg1.indexOf("suspend_data") > -1) { // Suspend Data is, currently, the only real meaningful data strErr = ""; } else { strErr = ""; } if(strFSArg1.indexOf('mastery') > -1) { intLMSScoreMastery = strErr; } // AEC: Custom tracking override - End CaptivateObj.SetVariable(strFSArg3, strErr); } } else if (strFSCmd.substring(0,3) == "LMSGet") { strErr = "-2: No Flash variable specified" } return strErr; } function Captivate_DoExternalInterface(command, parameter, value, variable) { var CaptivateObj = g_bIsInternetExplorer ? Captivate : document.Captivate; //alert("command " + command + " ;parameter " +parameter+ " ;value " + value + " ;variable " + variable ); //var strFSArgs = new String(args); var strFSCmd = new String(command); var strErr = "true"; var strFSArg1, strFSArg2, strFSArg3; strFSArg1 = parameter; strFSArg2 = value; strFSArg3 = variable; /*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") { // AEC: Custom tracking override - Begin CaptivateObj.SetScormVariable(strFSArg3,'true'); // AEC: Custom tracking override - End } else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") { // AEC: Custom tracking override - Begin if(strFSArg1.indexOf("raw") > -1) { intLMSScoreRaw = strFSArg2; } else if (strFSArg1.indexOf("max") > -1) { intLMSScoreMax = strFSArg2; } else if (strFSArg1.indexOf("min") > -1) { intLMSScoreMin = strFSArg2; } else if (strFSArg1.indexOf("lesson_status") > -1) { strLMSStatus = strFSArg2; } else if (strFSArg1.indexOf("lesson_location") > -1) { strLMSLocation = strFSArg2; } else if (strFSArg1.indexOf("suspend_data") > -1) { strLMSSuspendData = strFSArg2; } else if (strFSArg1.indexOf("session_time") > -1) { strLMSTime = strFSArg2; } if (strFSArg1.indexOf('cmi.interactions') > -1) { if (strFSArg1.indexOf('id') > -1) { intTemp = lstInteractions.length; lstInteractions[intTemp] = ""; lstInteractions[intTemp] = "id = " + strFSArg2; } else { intTemp = lstInteractions.length - 1; strTemp = strFSArg1.substring(strFSArg1.lastIndexOf('.') + 1); lstInteractions[intTemp] += "; " + strTemp + " = " + strFSArg2; } } strErr = ""; // AEC: Custom tracking override - End CaptivateObj.SetScormVariable(strFSArg3, strErr); } else if ( strFSCmd == "LMSFinish" || strFSCmd=="Terminate") { // AEC: Custom tracking override - Begin g_bFinishDone = Finish(); // AEC: Custom tracking override - End strErr = g_bFinishDone; CaptivateObj.SetScormVariable(strFSArg3, g_bFinishDone); } else if ( strFSCmd == "LMSCommit" || strFSCmd=="Commit") { // AEC: Custom tracking override - Begin strErr = 'true'; // AEC: Custom tracking override - End CaptivateObj.SetScormVariable(strFSArg3, strErr); } else if ((strFSArg2) && (strFSArg2.length > 0)) { if(strFSCmd=="LMSGetLastError") { // AEC: Custom tracking override - Begin strErr = 0; // AEC: Custom tracking override - End CaptivateObj.SetScormVariable(strFSArg3, strErr); } else { // AEC: Custom tracking override - Begin if(strFSArg1.indexOf('cmi.core._children') > -1) { strErr = 'student_id,student_name,lesson_location,credit,lesson_status,entry,score,total_time,lesson_mode,exit,session_time'; } else if (strFSArg1.indexOf('cmi.core.score._children') > -1) { strErr = 'raw,min,max'; } else if (strFSArg1.indexOf('cmi.interactions._children') > -1) { strErr = 'id,objectives,time,type,correct_responses,weighting,student_response,result,latency'; } else if (strFSArg1.indexOf('_count') > -1) { strErr = 0; } else if (strFSArg1.indexOf("suspend_data") > -1) { // Suspend Data is, currently, the only real meaningful data strErr = ""; } else { strErr = ""; } if(strFSArg1.indexOf('mastery') > -1) { intLMSScoreMastery = strErr; } // AEC: Custom tracking override - End CaptivateObj.SetScormVariable(strFSArg3, strErr); } } else if (strFSCmd.substring(0,3) == "LMSGet") { strErr = "-2: No Flash variable specified" } return strErr; } }