var blnDirtyAICCData = false; var blnCommitSavedData = false; var intAICCErrorNum = NO_ERROR; var strAICCErrorDesc = ""; var aryAICCFoundItems = new Array(); var blnUseLongInteractionResultValues = true; var AICC_LMS_Version = ""; var AICC_Student_ID = ""; var AICC_Student_Name = ""; var AICC_Lesson_Location = ""; var AICC_Score = ""; var AICC_Credit = ""; var AICC_Lesson_Status = ""; var AICC_Time = ""; var AICC_Mastery_Score = ""; var AICC_Lesson_Mode = ""; var AICC_Max_Time_Allowed = ""; var AICC_Time_Limit_Action = ""; var AICC_Audio = ""; var AICC_Speed = ""; var AICC_Language = ""; var AICC_Text = ""; var AICC_Launch_Data = ""; var AICC_Data_Chunk = ""; var AICC_Comments = ""; var AICC_Objectives = null; var AICC_CourseID = ""; var AICC_fltScoreRaw = ""; var AICC_fltScoreMax = ""; var AICC_fltScoreMin = ""; var AICC_blnCredit = true; var AICC_strLessonMode = MODE_NORMAL; var AICC_intPreviouslyAccumulatedMilliseconds = 0; var AICC_intMaxTimeAllowedMilliseconds = MAX_CMI_TIME; var AICC_blnExitOnTimeout = false; var AICC_blnShowMessageOnTimeout = true; var AICC_TextPreference = PREFERENCE_DEFAULT; var AICC_Status = LESSON_STATUS_NOT_ATTEMPTED; var AICC_Entry = ENTRY_REVIEW; var AICC_AudioPlayPreference = PREFERENCE_DEFAULT; var AICC_intAudioVolume = 100; var AICC_intPercentOfMaxSpeed = 100; var AICC_intSessionTimeMilliseconds = 0; var AICC_aryObjectivesRead = new Array(); var AICC_aryObjectivesWrite = new Array(); var AICC_aryCommentsFromLearner = new Array(); var AICC_aryInteractions = new Array(); var AICC_OBJ_ARRAY_ID = 0; var AICC_OBJ_ARRAY_SCORE = 1; var AICC_OBJ_ARRAY_STATUS = 2; var AICC_INTERACTIONS_ID = 0; var AICC_INTERACTIONS_RESPONSE = 1; var AICC_INTERACTIONS_CORRECT = 2; var AICC_INTERACTIONS_CORRECT_RESPONSE = 3; var AICC_INTERACTIONS_TIME_STAMP = 4; var AICC_INTERACTIONS_TYPE = 5; var AICC_INTERACTIONS_WEIGHTING = 6; var AICC_INTERACTIONS_LATENCY = 7; var AICC_INTERACTIONS_RESPONSE_LONG = 8; var AICC_INTERACTIONS_CORRECT_RESPONSE_LONG = 9; var AICC_INTERACTION_TYPE_TRUE_FALSE = "T"; var AICC_INTERACTION_TYPE_CHOICE = "C"; var AICC_INTERACTION_TYPE_FILL_IN = "F"; var AICC_INTERACTION_TYPE_MATCHING = "M"; var AICC_INTERACTION_TYPE_PERFORMANCE = "P"; var AICC_INTERACTION_TYPE_SEQUENCING = "S"; var AICC_INTERACTION_TYPE_LIKERT = "L"; var AICC_INTERACTION_TYPE_NUMERIC = "N"; var AICC_RESULT_CORRECT = "C"; var AICC_RESULT_WRONG = "W"; var AICC_RESULT_UNANTICIPATED = "U"; var AICC_RESULT_NEUTRAL = "N"; var AICC_NO_ERROR = "0"; var AICC_ERROR_INVALID_PREFERENCE = "-1"; var AICC_ERROR_INVALID_STATUS = "-2"; var AICC_ERROR_INVALID_SPEED = "-3"; var AICC_ERROR_INVALID_TIMESPAN = "-4"; var AICC_ERROR_INVALID_TIME_LIMIT_ACTION = "-5"; var AICC_ERROR_INVALID_DECIMAL = "-6"; var AICC_ERROR_INVALID_CREDIT = "-7"; var AICC_ERROR_INVALID_LESSON_MODE = "-8"; var AICC_ERROR_INVALID_ENTRY = "-9"; function AICC_Initialize(){ WriteToDebug("In AICC_Initialize"); window.AICCComm.MakeGetParamRequest(); return;}
function AICC_Finish(strExitType, blnStatusWasSet){ WriteToDebug("In AICC_Finish, strExitType=" + strExitType + ", blnStatusWasSet=" + blnStatusWasSet); if (! blnStatusWasSet){ if ( (strExitType == EXIT_TYPE_FINISH)){ WriteToDebug("Setting status to complete"); AICC_Status = LESSON_STATUS_COMPLETED;}
else{ WriteToDebug("Setting status to incomplete"); AICC_Status = LESSON_STATUS_INCOMPLETE;}
}
AICC_CommitData(); if (blnCommitSavedData == true){ KillTime();}
window.AICCComm.MakeExitAURequest(); return true;}
function AICC_CommitData(){ var strAICCData; WriteToDebug("In AICC_CommitData"); blnCommitSavedData = false; if (IsThereDirtyAICCData()){ blnCommitSavedData = true; WriteToDebug("Found Dirty Data"); strAICCData = FormAICCPostData(); window.AICCComm.MakePutParamRequest(strAICCData); if ( AICC_aryInteractions.length > 0){ WriteToDebug("Saving Interactions"); KillTime(); AICC_SendInteractions();}
ClearDirtyAICCData();}
return true;}
function KillTime(){ WriteToDebug("In KillTime"); var start = new Date(); if (window.AICCComm.blnCanUseXMLHTTP == false){ if (window.AICCComm.blnXMLHTTPIsAvailable == true){ var numBlankRequests = 3; for (var i=0; i < numBlankRequests; i++){ window.AICCComm.GetBlankHtmlPage(i);}
}
else{ window.NothingFrame.document.open(); var numLoops = 1000; for (var i=0; i < numLoops; i++){ window.NothingFrame.document.write("waiting");}
window.NothingFrame.document.close();}
}
var end = new Date(); WriteToDebug("Killed " + (end - start) + "milliseconds.");}
function AICC_SendInteractions(){ var strAICCData = FormAICCInteractionsData(); window.AICCComm.MakePutInteractionsRequest(strAICCData);}
function AICC_GetStudentID(){ WriteToDebug("In AICC_GetStudentID, Returning " + AICC_Student_ID); return AICC_Student_ID ;}
function AICC_GetStudentName(){ WriteToDebug("In AICC_GetStudentName, Returning " + AICC_Student_Name); return AICC_Student_Name;}
function AICC_GetBookmark(){ WriteToDebug("In AICC_GetBookmark, Returning " + AICC_Lesson_Location); return AICC_Lesson_Location;}
function AICC_SetBookmark(strBookmark){ WriteToDebug("In AICC_SetBookmark, strBookmark=" + strBookmark); SetDirtyAICCData(); AICC_Lesson_Location = strBookmark; return true;}
function AICC_GetDataChunk(){ WriteToDebug("In AICC_GetDataChunk, Returning " + AICC_Data_Chunk); return AICC_Data_Chunk ;}
function AICC_SetDataChunk(strData){ WriteToDebug("In AICC_SetDataChunk, strData=" + strData ); SetDirtyAICCData(); AICC_Data_Chunk = strData; return true;}
function AICC_GetLaunchData(){ WriteToDebug("In AICC_GetLaunchData, Returning " + AICC_Launch_Data ); return AICC_Launch_Data ;}
function AICC_GetComments(){ WriteToDebug("In AICC_GetComments, Returning " + AICC_aryCommentsFromLearner.join(" | ")); return AICC_aryCommentsFromLearner.join(" | ");}
function AICC_WriteComment(strComment){ WriteToDebug("In AICC_WriteComment, strComment=" + strComment); var intNextIndex; if (strComment.search(/ \| /) == 0){ strComment = strComment.substr(3);}
strComment.replace(/\|\|/g, "|")
intNextIndex = AICC_aryCommentsFromLearner.length; WriteToDebug("Adding comment to array"); AICC_aryCommentsFromLearner[intNextIndex] = strComment; SetDirtyAICCData(); return true;}
function AICC_GetLMSComments(){ WriteToDebug("In AICC_GetLMSComments, Returning " + AICC_Comments ); return AICC_Comments;}
function AICC_GetAudioPlayPreference(){ WriteToDebug("In AICC_GetAudioPlayPreference, Returning " + AICC_AudioPlayPreference); return AICC_AudioPlayPreference;}
function AICC_GetAudioVolumePreference(){ WriteToDebug("In AICC_GetAudioVolumePreference, Returning " + AICC_intAudioVolume); return AICC_intAudioVolume;}
function AICC_SetAudioPreference(PlayPreference, intPercentOfMaxVolume){ WriteToDebug("In AICC_SetAudioPreference, Returning true"); AICC_AudioPlayPreference = PlayPreference; AICC_intAudioVolume = intPercentOfMaxVolume; SetDirtyAICCData(); return true;}
function AICC_SetLanguagePreference(strLanguage){ WriteToDebug("In AICC_SetLanguagePreference, Returning true"); SetDirtyAICCData(); AICC_Language = strLanguage; return true;}
function AICC_GetLanguagePreference(){ WriteToDebug("In AICC_GetLanguagePreference, Returning " + AICC_Language); return AICC_Language;}
function AICC_SetSpeedPreference(intPercentOfMax){ WriteToDebug("In AICC_SetSpeedPreference, Returning true"); AICC_intPercentOfMaxSpeed = intPercentOfMax; SetDirtyAICCData(); return true;}
function AICC_GetSpeedPreference(){ WriteToDebug("In AICC_GetSpeedPreference, Returning " + AICC_intPercentOfMaxSpeed); return AICC_intPercentOfMaxSpeed;}
function AICC_SetTextPreference(intPreference){ WriteToDebug("In AICC_SetTextPreference, Returning true"); AICC_TextPreference = intPreference; SetDirtyAICCData(); return true;}
function AICC_GetTextPreference(){ WriteToDebug("In AICC_GetTextPreference, Returning " + AICC_TextPreference); return AICC_TextPreference;}
function AICC_GetPreviouslyAccumulatedTime(){ WriteToDebug("In AICC_GetPreviouslyAccumulatedTime, Returning " + AICC_intPreviouslyAccumulatedMilliseconds); return AICC_intPreviouslyAccumulatedMilliseconds;}
function AICC_SaveTime(intMilliSeconds){ WriteToDebug("In intMilliSeconds, Returning true"); AICC_intSessionTimeMilliseconds = intMilliSeconds; SetDirtyAICCData(); return true;}
function AICC_GetMaxTimeAllowed(){ WriteToDebug("In AICC_GetMaxTimeAllowed, Returning " + AICC_intMaxTimeAllowedMilliseconds); return AICC_intMaxTimeAllowedMilliseconds;}
function AICC_DisplayMessageOnTimeout(){ WriteToDebug("In AICC_DisplayMessageOnTimeout, Returning " + AICC_blnShowMessageOnTimeout); return AICC_blnShowMessageOnTimeout;}
function AICC_ExitOnTimeout(){ WriteToDebug("In AICC_ExitOnTimeout, Returning " + AICC_blnExitOnTimeout); return AICC_blnExitOnTimeout;}
function AICC_GetPassingScore(){ WriteToDebug("In AICC_GetPassingScore, Returning " + AICC_Mastery_Score); return AICC_Mastery_Score;}
function AICC_GetScore(){ WriteToDebug("In AICC_GetScore, Returning " + AICC_fltScoreRaw); return AICC_fltScoreRaw;}
function AICC_SetScore(fltScore, fltMaxScore, fltMinScore){ WriteToDebug("In AICC_SetScore, fltScore=" + fltScore + ", fltMaxScore=" + fltMaxScore + ", fltMinScore=" + fltMinScore); AICC_fltScoreRaw = fltScore; AICC_fltScoreMax = fltMaxScore; AICC_fltScoreMin = fltMinScore; SetDirtyAICCData(); return true;}
function AICC_RecordTrueFalseInteraction(strID, blnResponse, blnCorrect, blnCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordTrueFalseInteraction strID=" + strID + ", blnResponse=" + blnResponse + ", blnCorrect=" + blnCorrect + ", blnCorrectResponse=" + blnCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
var strResponse = ""; var strCorrectResponse = ""; if (blnResponse){ strResponse = "t";}
else{ strResponse = "f";}
if (blnCorrectResponse == true){ strCorrectResponse = "t";}
else if(blnCorrectResponse == false){ strCorrectResponse = "f";}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_TRUE_FALSE; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponse; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponse; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordMultipleChoiceInteraction(strID, aryResponse, blnCorrect, aryCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordMultipleChoiceInteraction strID=" + strID + ", aryResponse=" + aryResponse + ", blnCorrect=" + blnCorrect + ", aryCorrectResponse=" + aryCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
var strResponse = ""; var strResponseLong = ""; var strCorrectResponse = ""; var strCorrectResponseLong = ""; for (var i=0; i < aryResponse.length; i++){ if (strResponse.length > 0) {strResponse += ",";}
if (strResponseLong.length > 0) {strResponseLong += ",";}
strResponse += aryResponse[i].Short.replace(",", ""); strResponseLong += aryResponse[i].Long.replace(",", "");}
for (var i=0; i < aryCorrectResponse.length; i++){ if (strCorrectResponse.length > 0) {strCorrectResponse += ",";}
if (strCorrectResponseLong.length > 0) {strCorrectResponseLong += ",";}
strCorrectResponse += aryCorrectResponse[i].Short.replace(",", ""); strCorrectResponseLong += aryCorrectResponse[i].Long.replace(",", "");}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_CHOICE; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponseLong; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponseLong; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordFillInInteraction(strID, strResponse, blnCorrect, strCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordFillInInteraction strID=" + strID + ", strResponse=" + strResponse + ", blnCorrect=" + blnCorrect + ", strCorrectResponse=" + strCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
if (strCorrectResponse == null || strCorrectResponse == undefined){strCorrectResponse="";}
strResponse = new String(strResponse); if (strResponse.length > 255) {strResponse = strResponse.substr(0, 255);}
strCorrectResponse = new String(strCorrectResponse); if (strCorrectResponse.length > 255) {strCorrectResponse = strCorrectResponse.substr(0, 255);}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_FILL_IN; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponse; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponse; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordMatchingInteraction(strID, aryResponse, blnCorrect, aryCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordMatchingInteraction strID=" + strID + ", aryResponse=" + aryResponse + ", blnCorrect=" + blnCorrect + ", aryCorrectResponse=" + aryCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
var strResponse = ""; var strResponseLong = ""; var strCorrectResponse = ""; var strCorrectResponseLong = ""; for (var i=0; i < aryResponse.length; i++){ if (strResponse.length > 0) {strResponse += ",";}
if (strResponseLong.length > 0) {strResponseLong += ",";}
strResponse += aryResponse[i].Source.Short.replace(",", "").replace(".", "") + "." + aryResponse[i].Target.Short.replace(",", "").replace(".", ""); strResponseLong += aryResponse[i].Source.Long.replace(",", "").replace(".", "") + "." + aryResponse[i].Target.Long.replace(",", "").replace(".", "");}
for (var i=0; i < aryCorrectResponse.length; i++){ if (strCorrectResponse.length > 0) {strCorrectResponse += ",";}
if (strCorrectResponseLong.length > 0) {strCorrectResponseLong += ",";}
if (aryCorrectResponse[i].Source.Short != "" && aryCorrectResponse[i].Source.Long != ""){ strCorrectResponse += aryCorrectResponse[i].Source.Short.replace(",", "").replace(".", "") + "." + aryCorrectResponse[i].Target.Short.replace(",", "").replace(".", ""); strCorrectResponseLong += aryCorrectResponse[i].Source.Long.replace(",", "").replace(".", "") + "." + aryCorrectResponse[i].Target.Long.replace(",", "").replace(".", "");}
}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_MATCHING; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponseLong; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponseLong; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordPerformanceInteraction(strID, strResponse, blnCorrect, strCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordPerformanceInteraction strID=" + strID + ", strResponse=" + strResponse + ", blnCorrect=" + blnCorrect + ", strCorrectResponse=" + strCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
if (strCorrectResponse == null || strCorrectResponse == undefined){strCorrectResponse="";}
strResponse = new String(strResponse); if (strResponse.length > 255) {strResponse = strResponse.substr(0, 255);}
strCorrectResponse = new String(strCorrectResponse); if (strCorrectResponse.length > 255) {strCorrectResponse = strCorrectResponse.substr(0, 255);}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_PERFORMANCE; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponse; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponse; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordSequencingInteraction(strID, aryResponse, blnCorrect, aryCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordSequencingInteraction strID=" + strID + ", aryResponse=" + aryResponse + ", blnCorrect=" + blnCorrect + ", aryCorrectResponse=" + aryCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
var strResponse = ""; var strResponseLong = ""; var strCorrectResponse = ""; var strCorrectResponseLong = ""; for (var i=0; i < aryResponse.length; i++){ if (strResponse.length > 0) {strResponse += ",";}
if (strResponseLong.length > 0) {strResponseLong += ",";}
strResponse += aryResponse[i].Short.replace(",", ""); strResponseLong += aryResponse[i].Long.replace(",", "");}
for (var i=0; i < aryCorrectResponse.length; i++){ if (strCorrectResponse.length > 0) {strCorrectResponse += ",";}
if (strCorrectResponseLong.length > 0) {strCorrectResponseLong += ",";}
strCorrectResponse += aryCorrectResponse[i].Short.replace(",", ""); strCorrectResponseLong += aryCorrectResponse[i].Long.replace(",", "");}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_SEQUENCING; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponseLong; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponseLong; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordLikertInteraction(strID, response, blnCorrect, correctResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In RecordLikertInteraction strID=" + strID + ", response=" + response + ", blnCorrect=" + blnCorrect + ", correctResponse=" + correctResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
var strResponse = response.Short; var strResponseLong = response.Long; var strCorrectResponse = ""; var strCorrectResponseLong = ""; if (correctResponse != null){ strCorrectResponse = correctResponse.Short; strCorrectResponseLong = correctResponse.Long;}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_LIKERT; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponseLong; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponseLong; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_RecordNumericInteraction(strID, strResponse, blnCorrect, strCorrectResponse, strDescription, intWeighting, intLatency, strLearningObjectiveID, dtmTime){ WriteToDebug("In AICC_RecordNumericInteraction strID=" + strID + ", strResponse=" + strResponse + ", blnCorrect=" + blnCorrect + ", strCorrectResponse=" + strCorrectResponse + ", strDescription=" + strDescription + ", intWeighting=" + intWeighting + ", intLatency=" + intLatency + ", strLearningObjectiveID=" + strLearningObjectiveID + ", dtmTime=" + dtmTime); var intTotalInteractions; var aryData = new Array(10); intTotalInteractions = AICC_aryInteractions.length; if (intWeighting == null || intWeighting == undefined ){intWeighting="";}
if (intLatency == null || intLatency == undefined){intLatency="";}
if (blnCorrect == null || blnCorrect == undefined){blnCorrect="";}
if (strCorrectResponse == null || strCorrectResponse == undefined){strCorrectResponse="";}
aryData[AICC_INTERACTIONS_ID] = strID; aryData[AICC_INTERACTIONS_RESPONSE] = strResponse; aryData[AICC_INTERACTIONS_CORRECT] = blnCorrect; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE] = strCorrectResponse; aryData[AICC_INTERACTIONS_TIME_STAMP] = dtmTime; aryData[AICC_INTERACTIONS_TYPE] = AICC_INTERACTION_TYPE_NUMERIC; aryData[AICC_INTERACTIONS_WEIGHTING] = intWeighting; aryData[AICC_INTERACTIONS_LATENCY] = intLatency; aryData[AICC_INTERACTIONS_RESPONSE_LONG] = strResponse; aryData[AICC_INTERACTIONS_CORRECT_RESPONSE_LONG]= strCorrectResponse; AICC_aryInteractions[intTotalInteractions] = aryData; WriteToDebug("Added to interactions array, index=" + intTotalInteractions); SetDirtyAICCData(); return true;}
function AICC_GetEntryMode(){ WriteToDebug("In AICC_GetEntryMode, Returning " + AICC_Entry); return AICC_Entry;}
function AICC_GetLessonMode(){ WriteToDebug("In AICC_GetLessonMode, Returning " + AICC_strLessonMode); return AICC_strLessonMode;}
function AICC_GetTakingForCredit(){ WriteToDebug("In AICC_GetTakingForCredit, Returning " + AICC_blnCredit); return AICC_blnCredit;}
function AICC_SetObjectiveScore(strObjectiveID, intScore, intMaxScore, intMinScore){ WriteToDebug("In AICC_SetObjectiveScore, strObjectiveID=" + strObjectiveID + ", intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore); var intNextID; var intObjIndex; var strAICCScore = ""; intObjIndex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesRead); if (intObjIndex != null){ WriteToDebug("Found read objective"); AICC_aryObjectivesRead[intObjIndex][AICC_OBJ_ARRAY_SCORE] = intScore;}
else{ WriteToDebug("Adding new read objective"); intNextID = AICC_aryObjectivesRead.length; AICC_aryObjectivesRead[parseInt(intNextID, 10)] = new Array(3); AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_ID] = strObjectiveID; AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_SCORE] = intScore; AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_STATUS] = "";}
intObjIndex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesWrite); if (intObjIndex != null){ WriteToDebug("Found write objective"); AICC_aryObjectivesWrite[intObjIndex][AICC_OBJ_ARRAY_SCORE] = intScore;}
else{ WriteToDebug("Adding new write objective"); intNextID = AICC_aryObjectivesWrite.length; AICC_aryObjectivesWrite[parseInt(intNextID, 10)] = new Array(3); strAICCScore = intScore; if (AICC_LMS_Version < 3 && strAICCScore != ""){ strAICCScore = parseInt(strAICCScore, 10);}
if ( (AICC_REPORT_MIN_MAX_SCORE === undefined || AICC_REPORT_MIN_MAX_SCORE === null || AICC_REPORT_MIN_MAX_SCORE === true) &&
(AICC_LMS_Version >= 3 ) ){ if ((intMaxScore != "") || (intMinScore != "")) { WriteToDebug("Appending Max and Min scores"); strAICCScore += "," + intMaxScore + "," + intMinScore;}
}
AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_ID] = strObjectiveID; AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_SCORE] = strAICCScore; AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_STATUS] = "";}
SetDirtyAICCData(); return true;}
function AICC_SetObjectiveStatus(strObjectiveID, Lesson_Status){ WriteToDebug("In AICC_SetObjectiveStatus, strObjectiveID=" + strObjectiveID + ", Lesson_Status=" + Lesson_Status); var intNextID; var intObjIdex; intObjIdex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesRead); if (intObjIdex != null){ WriteToDebug("Found read objective"); AICC_aryObjectivesRead[intObjIdex][AICC_OBJ_ARRAY_STATUS] = Lesson_Status;}
else{ WriteToDebug("Adding new read objective"); intNextID = AICC_aryObjectivesRead.length; AICC_aryObjectivesRead[parseInt(intNextID, 10)] = new Array(3); AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_ID] = strObjectiveID; AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_STATUS] = Lesson_Status; AICC_aryObjectivesRead[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_SCORE] = "";}
intObjIdex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesWrite); if (intObjIdex != null){ WriteToDebug("Found write objective"); AICC_aryObjectivesWrite[intObjIdex][AICC_OBJ_ARRAY_STATUS] = Lesson_Status;}
else{ WriteToDebug("Adding new write objective"); intNextID = AICC_aryObjectivesWrite.length; AICC_aryObjectivesWrite[parseInt(intNextID, 10)] = new Array(3); AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_ID] = strObjectiveID; AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_STATUS] = Lesson_Status; AICC_aryObjectivesWrite[parseInt(intNextID, 10)][AICC_OBJ_ARRAY_SCORE] = "";}
SetDirtyAICCData(); return true;}
function AICC_GetObjectiveScore(strObjectiveID){ WriteToDebug("In AICC_SetObjectiveScore, strObjectiveID=" + strObjectiveID); var intObjIndex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesRead)
if (intObjIndex != null){ WriteToDebug("Found objective, returning " + AICC_aryObjectivesRead[intObjIndex][AICC_OBJ_ARRAY_SCORE]); return AICC_aryObjectivesRead[intObjIndex][AICC_OBJ_ARRAY_SCORE];}
else{ WriteToDebug("Did not find objective, returning ''"); return "";}
}
function AICC_GetObjectiveStatus(strObjectiveID){ WriteToDebug("In AICC_SetObjectiveStatus, strObjectiveID=" + strObjectiveID); var intObjIndex = FindObjectiveById(strObjectiveID, AICC_aryObjectivesRead)
if (intObjIndex != null){ WriteToDebug("Found objective, returning " + AICC_aryObjectivesRead[intObjIndex][AICC_OBJ_ARRAY_STATUS]); return AICC_aryObjectivesRead[intObjIndex][AICC_OBJ_ARRAY_STATUS];}
else{ WriteToDebug("Did not find objective, returning " + LESSON_STATUS_NOT_ATTEMPTED); return LESSON_STATUS_NOT_ATTEMPTED;}
}
function AICC_SetFailed(){ WriteToDebug("In AICC_SetFailed, Returning true"); AICC_Status = LESSON_STATUS_FAILED; SetDirtyAICCData(); return true;}
function AICC_SetPassed(){ WriteToDebug("In AICC_SetPassed, Returning true"); AICC_Status = LESSON_STATUS_PASSED; SetDirtyAICCData(); return true;}
function AICC_SetCompleted(){ WriteToDebug("In AICC_SetCompleted, Returning true"); AICC_Status = LESSON_STATUS_COMPLETED; SetDirtyAICCData(); return true;}
function AICC_ResetStatus(){ WriteToDebug("In AICC_ResetStatus, Returning true"); AICC_Status = LESSON_STATUS_INCOMPLETE; SetDirtyAICCData(); return true;}
function AICC_GetStatus(){ WriteToDebug("In AICC_GetStatus, Returning " + AICC_Status); return AICC_Status;}
function AICC_GetLastError(){ WriteToDebug("In AICC_GetLastError, Returning " + intAICCErrorNum); return intAICCErrorNum;}
function AICC_GetLastErrorDesc(){ WriteToDebug("In AICC_GetLastErrorDesc, Returning '" + strAICCErrorDesc + "'"); return strAICCErrorDesc;}
function AICC_PutParamFailed(){ WriteToDebug("ERROR: In AICC_PutParamFailed"); SetDirtyAICCData(); return;}
function AICC_PutInteractionsFailed(){ WriteToDebug("ERROR: In AICC_PutInteractionsFailed"); SetDirtyAICCData(); if (parent.blnUseLongInteractionResultValues == true){ parent.blnUseLongInteractionResultValues = false; parent.AICC_CommitData();}
return;}
function AICC_SetErrorInfo(strErrorNumLine, strErrorDescLine){ WriteToDebug("ERROR: In AICC_SetErrorInfo, strErrorNumLine=" + strErrorNumLine + ", strErrorDescLine=" + strErrorDescLine); if (strErrorNumLine.toLowerCase().search(/error\s*=\s*0/) == -1){ WriteToDebug("Detected No Error"); intAICCErrorNum = NO_ERROR; strAICCErrorDesc = "";}
else{ WriteToDebug("Setting Error Info"); AICC_SetError(GetValueFromAICCLine(strAICCErrorLine), GetValueFromAICCLine(strAICCErrorDesc))
}
}
function AICC_SetError(intErrorNum, strErrorDesc){ WriteToDebug("ERROR: In AICC_SetError, intErrorNum=" + intErrorNum + ", strErrorDesc=" + strErrorDesc); intAICCErrorNum = intErrorNum; strAICCErrorDesc = strAICCErrorDesc;}
function SetDirtyAICCData(){ WriteToDebug("In SetDirtyAICCData"); blnDirtyAICCData = true;}
function ClearDirtyAICCData(){ WriteToDebug("In ClearDirtyAICCData"); blnDirtyAICCData = false;}
function IsThereDirtyAICCData(){ WriteToDebug("In IsThereDirtyAICCData, returning " + blnDirtyAICCData); return blnDirtyAICCData;}
function GetValueFromAICCLine(strLine){ WriteToDebug("In GetValueFromAICCLine, strLine=" + strLine); var intPos; var strValue = ""; var strTemp; strLine = new String(strLine); intPos = strLine.indexOf("="); WriteToDebug("intPos=" + intPos); if (intPos > -1 && ((intPos + 1) < strLine.length)){ WriteToDebug("Grabbing value"); strTemp = strLine.substring(intPos+1); WriteToDebug("strTemp=" + strTemp); strTemp = strTemp.replace(/^\s*/, ""); strTemp = strTemp.replace(/\s*$/, ""); strValue = strTemp;}
WriteToDebug("returning " + strValue); return strValue;}
function GetNameFromAICCLine(strLine){ WriteToDebug("In GetNameFromAICCLine, strLine=" + strLine); var intPos; var strTemp; var strName = ""; strLine = new String(strLine); intPos = strLine.indexOf("="); WriteToDebug("intPos=" + intPos); if (intPos > -1 && intPos < strLine.length){ WriteToDebug("Grabbing name from name/value pair"); strTemp = strLine.substring(0, intPos); WriteToDebug("strTemp=" + strTemp); strTemp = strTemp.replace(/^\s*/, ""); strTemp = strTemp.replace(/\s*$/, ""); strName = strTemp;}
else{ WriteToDebug("Grabbing name from group / section heading"); intPos = strLine.indexOf("["); WriteToDebug("intPos=" + intPos); if (intPos > -1){ WriteToDebug("Replacing []"); strTemp = strLine.replace(/[\[|\]]/g, ""); WriteToDebug("strTemp=" + strTemp); strTemp = strTemp.replace(/^\s*/, ""); strTemp = strTemp.replace(/\s*$/, ""); strName = strTemp;}
}
WriteToDebug("returning " + strName); return strName;}
function GetIndexFromAICCName(strLineName){ WriteToDebug("In GetIndexFromAICCName, strLineName=" + strLineName); var intPos; var strIndex = ""; var strTemp = ""; strLine = new String(strLineName); intPos = strLine.indexOf("."); WriteToDebug("intPos=" + intPos); if (intPos > -1 && (intPos+1) < strLine.length){ WriteToDebug("Grabbing index"); strTemp = strLine.substring(intPos + 1); WriteToDebug("strTemp=" + strTemp); WriteToDebug("Checking for equal sign"); intPos = strTemp.indexOf("="); if (intPos > -1 && intPos < strTemp.length){ WriteToDebug("Found and removing equal sign"); strTemp = strLine.substring(0, intPos);}
WriteToDebug("Removing white space"); strTemp = strTemp.replace(/^\s*/, ""); strTemp = strTemp.replace(/\s*$/, ""); strIndex = strTemp;}
WriteToDebug("returning " + strIndex); return strIndex;}
function ParseGetParamData(strLMSResult){ WriteToDebug("In ParseGetParamData"); var aryAICCResponseLines; var strLine; var strLineName; var strLineValue; var i, j; strLMSResult = new String(strLMSResult); aryAICCResponseLines = strLMSResult.split("\n"); WriteToDebug("Split String"); for (i=0; i < aryAICCResponseLines.length; i++){ WriteToDebug("Processing Line #" + i + ": " + aryAICCResponseLines[i]); strLine = aryAICCResponseLines[i]; strLineName = ""; strLineValue = ""; if (strLine.length > 0){ WriteToDebug("Found non-zero length string"); if (strLine.charAt(0) == "\r"){ WriteToDebug("Detected leading \\r"); strLine = strLine.substr(1);}
if (strLine.charAt(strLine.length - 1) == "\r"){ WriteToDebug("Detected trailing \\r"); strLine = strLine.substr(0, strLine.length - 1);}
if (strLine.charAt(0) != ";") { WriteToDebug("Found non-comment line"); strLineName = GetNameFromAICCLine(strLine); strLineValue = GetValueFromAICCLine(strLine); WriteToDebug("strLineName=" + strLineName + ", strLineValue=" + strLineValue);}
}
strLineName = strLineName.toLowerCase(); if (! AICC_HasItemBeenFound(strLineName)){ WriteToDebug("Detected an un-found item"); AICC_FoundItem(strLineName); switch (strLineName){ case "version":
WriteToDebug("Item is version"); var tempVersion = parseFloat(strLineValue); if (isNaN(tempVersion)){tempVersion=0;}
AICC_LMS_Version = tempVersion; break; case "student_id":
WriteToDebug("Item is student_id"); AICC_Student_ID = strLineValue; break; case "student_name":
WriteToDebug("Item is student_name"); AICC_Student_Name = strLineValue; break; case "lesson_location":
WriteToDebug("Item is lesson_location"); AICC_Lesson_Location = strLineValue; break; case "score":
WriteToDebug("Item is score"); AICC_Score = strLineValue; AICC_SeperateScoreValues(AICC_Score); break; case "credit":
WriteToDebug("Item is credit"); AICC_Credit = strLineValue; AICC_TranslateCredit(AICC_Credit); break; case "lesson_status":
WriteToDebug("Item is lesson_status"); AICC_Lesson_Status = strLineValue; AICC_TranslateLessonStatus(AICC_Lesson_Status); break; case "time":
WriteToDebug("Item is time"); AICC_Time = strLineValue; AICC_TranslateTimeToMilliseconds(AICC_Time); break; case "mastery_score":
WriteToDebug("Item is mastery_score"); AICC_Mastery_Score = strLineValue; AICC_ValidateMasteryScore(AICC_Mastery_Score); break; case "lesson_mode":
WriteToDebug("Item is lesson_mode"); AICC_Lesson_Mode = strLineValue; AICC_TranslateLessonMode(AICC_Lesson_Mode); break; case "max_time_allowed":
WriteToDebug("Item is max_time_allowed"); AICC_Max_Time_Allowed = strLineValue; AICC_TranslateMaxTimeToMilliseconds(AICC_Max_Time_Allowed); break; case "time_limit_action":
WriteToDebug("Item is time_limit_action"); AICC_Time_Limit_Action = strLineValue; AICC_TranslateTimeLimitAction(AICC_Time_Limit_Action); break; case "audio":
WriteToDebug("Item is audio"); AICC_Audio = strLineValue; AICC_TranslateAudio(AICC_Audio); break; case "speed":
WriteToDebug("Item is speed"); AICC_Speed = strLineValue; AICC_TranslateSpeed(AICC_Speed); break; case "language":
WriteToDebug("Item is language"); AICC_Language = strLineValue; break; case "text":
WriteToDebug("Item is text"); AICC_Text = strLineValue; AICC_TranslateTextPreference(AICC_Text); break; case "course_id":
WriteToDebug("Item is course id"); AICC_CourseID = strLineValue; break; case "core_vendor":
WriteToDebug("Item is core_vendor"); AICC_Launch_Data = ""; strLine = ""; j=1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
while ( ((i+j) < aryAICCResponseLines.length) && (! IsGroupIdentifier(strLine))){ if (strLine.charAt(0) != ";"){ AICC_Launch_Data += strLine + "\n";}
j = j + 1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
}
i = i + j - 1
AICC_Launch_Data = AICC_Launch_Data.replace(/\s*$/, ""); break; case "core_lesson":
WriteToDebug("Item is core_lesson"); AICC_Data_Chunk = ""; strLine = ""; j=1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
while ( ((i+j) < aryAICCResponseLines.length) && (! IsGroupIdentifier(strLine))){ if (strLine.charAt(0) != ";"){ AICC_Data_Chunk += strLine + "\n";}
j = j + 1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
}
i = i + j - 1
AICC_Data_Chunk = AICC_Data_Chunk.replace(/\s*$/, ""); break; case "comments":
WriteToDebug("Item is comments"); AICC_Comments = ""; strLine = ""; j=1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
while ( ((i+j) < aryAICCResponseLines.length) && (! IsGroupIdentifier(strLine))){ if (strLine.charAt(0) != ";"){ AICC_Comments += strLine + "\n";}
j = j + 1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
}
i = i + j - 1
AICC_Comments = AICC_Comments.replace(/\s*$/, ""); break; case "objectives_status":
WriteToDebug("Item is objectives_status"); AICC_Objectives = ""; strLine = ""; j=1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
while ( ((i+j) < aryAICCResponseLines.length) && (! IsGroupIdentifier(strLine))){ if (strLine.charAt(0) != ";"){ AICC_Objectives += strLine + "\n";}
j = j + 1; if ((i+j) < aryAICCResponseLines.length){ strLine = aryAICCResponseLines[i+j];}
}
i = i + j - 1
AICC_Objectives = AICC_Objectives.replace(/\s*$/, ""); AICC_FormatObjectives(AICC_Objectives); break; default:
WriteToDebug("Unknown Item Found"); break;}
}
}
return true;}
function IsGroupIdentifier(strLine){ WriteToDebug("In IsGroupIdentifier, strLine=" + strLine); var intPos; strLine = strLine.replace(/^\s*/, ""); intPos = strLine.search(/\[[\w]+\]/); WriteToDebug("intPos=" + intPos); if (intPos == 0){ WriteToDebug("Returning True"); return true;}
else{ WriteToDebug("Returning False"); return false;}
}
function AICC_FoundItem(strItem){ WriteToDebug("In AICC_FoundItem, strItem=" + strItem); aryAICCFoundItems[strItem] = true;}
function AICC_HasItemBeenFound(strItem){ WriteToDebug("In AICC_HasItemBeenFound, strItem=" + strItem); if (aryAICCFoundItems[strItem] == true){ WriteToDebug("Returning True"); return true;}
else{ WriteToDebug("Returning False"); return false;}
}
function AICC_SeperateScoreValues(AICC_Score){ WriteToDebug("In AICC_SeperateScoreValues, AICC_Score=" + AICC_Score); var aryScores; aryScore = AICC_Score.split(","); AICC_fltScoreRaw = aryScore[0]; if (IsValidDecimal(AICC_fltScoreRaw)){ WriteToDebug("Found a valid decimal"); AICC_fltScoreRaw = parseFloat(AICC_fltScoreRaw);}
else{ WriteToDebug("ERROR - score from LMS is not a valid decimal"); AICC_SetError(AICC_ERROR_INVALID_DECIMAL, "score is not a valid decimal")
}
if (aryScore.length > 1){ WriteToDebug("Max score found"); AICC_fltScoreMax = aryScore[1]; if ( IsValidDecimal(AICC_fltScoreMax)){ WriteToDebug("Found a valid decimal"); AICC_fltScoreMax = parseFloat(AICC_fltScoreMax);}
else{ WriteToDebug("ERROR - max score from LMS is not a valid decimal"); AICC_SetError(AICC_ERROR_INVALID_DECIMAL, "max score is not a valid decimal")
}
}
if (aryScore.length > 2){ WriteToDebug("Max score found"); AICC_fltScoreMin = aryScore[2]; if (IsValidDecimal(AICC_fltScoreMin)){ WriteToDebug("Found a valid decimal"); AICC_fltScoreMin = parseFloat(AICC_fltScoreMin);}
else{ WriteToDebug("ERROR - min score from LMS is not a valid decimal"); AICC_SetError(AICC_ERROR_INVALID_DECIMAL, "min score is not a valid decimal")
}
}
}
function AICC_ValidateMasteryScore(strScore){ WriteToDebug("In AICC_ValidateMasteryScore, strScore=" + strScore); if (IsValidDecimal(strScore)){ AICC_Mastery_Score = parseFloat(strScore);}
else{ WriteToDebug("ERROR - mastery score from LMS is not a valid decimal"); AICC_SetError(AICC_ERROR_INVALID_DECIMAL, "mastery score is not a valid decimal")
}
}
function AICC_TranslateCredit(strCredit){ WriteToDebug("In AICC_TranslateCredit, strCredit=" + strCredit); var strFirstChar; strFirstChar = strCredit.toLowerCase().charAt(0); if (strFirstChar == "c"){ WriteToDebug("Credit = true"); AICC_blnCredit = true;}
else if (strFirstChar == "n"){ WriteToDebug("Credit = false"); AICC_blnCredit = false
}
else{ WriteToDebug("ERROR - credit value from LMS is not a valid"); AICC_SetError(AICC_ERROR_INVALID_CREDIT, "credit value from LMS is not a valid")
}
}
function AICC_TranslateLessonMode(strMode){ WriteToDebug("In AICC_TranslateLessonMode, strMode=" + strMode); var strFirstChar; strFirstChar = strMode.toLowerCase().charAt(0); if (strFirstChar == "b"){ WriteToDebug("Lesson Mode = Browse"); AICC_strLessonMode = MODE_BROWSE;}
else if (strFirstChar == "n"){ WriteToDebug("Lesson Mode = normal"); AICC_strLessonMode = MODE_NORMAL;}
else if (strFirstChar == "r"){ WriteToDebug("Lesson Mode = review"); AICC_strLessonMode = MODE_REVIEW;}
else{ WriteToDebug("ERROR - lesson_mode value from LMS is not a valid"); AICC_SetError(AICC_ERROR_INVALID_LESSON_MODE, "lesson_mode value from LMS is not a valid")
}
}
function AICC_TranslateTimeToMilliseconds(strCMITime){ WriteToDebug("In AICC_TranslateTimeToMilliseconds, strCMITime=" + strCMITime); if (IsValidCMITimeSpan(strCMITime)){ AICC_intPreviouslyAccumulatedMilliseconds = ConvertCMITimeSpanToMS(strCMITime);}
else{ WriteToDebug("ERROR - Invalid CMITimeSpan"); AICC_SetError(AICC_ERROR_INVALID_TIMESPAN, "Invalid timespan (previously accumulated time) received from LMS");}
}
function AICC_TranslateMaxTimeToMilliseconds(strCMITime){ WriteToDebug("In AICC_TranslateMaxTimeToMilliseconds, strCMITime=" + strCMITime); if (IsValidCMITimeSpan(strCMITime)){ AICC_intMaxTimeAllowedMilliseconds = ConvertCMITimeSpanToMS(strCMITime);}
else{ WriteToDebug("ERROR - Invalid CMITimeSpan"); AICC_SetError(AICC_ERROR_INVALID_TIMESPAN, "Invalid timespan (max time allowed) received from LMS");}
}
function AICC_TranslateTimeLimitAction(strTimeLimitAction){ WriteToDebug("In AICC_TranslateTimeLimitAction, strTimeLimitAction=" + strTimeLimitAction); var arySplit; var blnError = false; var strChar1 = ""; var strChar2 = ""; arySplit = strTimeLimitAction.split(","); if (arySplit.length == 2){ WriteToDebug("Found 2 elements"); strChar1 = arySplit[0].charAt(0).toLowerCase(); strChar2 = arySplit[1].charAt(0).toLowerCase(); WriteToDebug("Got characters, strChar1=" + strChar1 + ", strChar2=" + strChar2); if ( (strChar1 != "e" && strChar1 != "c" && strChar1 != "m" && strChar1 != "n") || (strChar2 != "e" && strChar2 != "c" && strChar2 != "m" && strChar2 != "n") || (strChar1 == strChar2) ) { blnError = true
WriteToDebug("Found an invalid character, or 2 identical characters");}
if (strChar1 == "e" || strChar2 == "e") {AICC_blnExitOnTimeout = true;}
if (strChar1 == "c" || strChar2 == "c") {AICC_blnExitOnTimeout = false;}
if (strChar1 == "n" || strChar2 == "n") {AICC_blnShowMessageOnTimeout = false;}
if (strChar1 == "m" || strChar2 == "m") {AICC_blnShowMessageOnTimeout = true;}
WriteToDebug("AICC_blnExitOnTimeout=" + AICC_blnExitOnTimeout + ", AICC_blnShowMessageOnTimeout" + AICC_blnShowMessageOnTimeout);}
else{ WriteToDebug("Line does not contain two comma-delimited elements"); blnError = true;}
if (blnError){ WriteToDebug("ERROR - Invalid Time Limit Action"); AICC_SetError(AICC_ERROR_INVALID_TIME_LIMIT_ACTION, "Invalid time limit action received from LMS");}
}
function AICC_TranslateTextPreference(strPreference){ WriteToDebug("In AICC_TranslateTextPreference, strPreference=" + strPreference); if (strPreference == -1){ WriteToDebug("Text Preference = off"); AICC_TextPreference = PREFERENCE_OFF;}
else if (strPreference == 0){ WriteToDebug("Text Preference = default"); AICC_TextPreference = PREFERENCE_DEFAULT;}
else if (strPreference == 1){ WriteToDebug("Text Preference = on"); AICC_TextPreference = PREFERENCE_ON;}
else{ WriteToDebug("ERROR - Invalid Text Preference"); AICC_SetError(AICC_ERROR_INVALID_PREFERENCE, "Invalid Text Preference received from LMS");}
}
function AICC_TranslateLessonStatus(strStatus){ WriteToDebug("In AICC_TranslateLessonStatus, strStatus=" + strStatus); var strFirstChar; var intPos; var strEntry; strFirstChar = strStatus.charAt(0).toLowerCase(); AICC_Status = AICC_ConvertAICCStatusIntoLocalStatus(strFirstChar); WriteToDebug("AICC_Status=" + AICC_Status); intPos = strStatus.indexOf(","); if (intPos > 0){ strEntry = strStatus.substr(intPos); strEntry = strEntry.replace(/,/, ""); strFirstChar = strEntry.charAt(0).toLowerCase(); if (strFirstChar == "a"){ WriteToDebug("Entry is Ab initio"); AICC_Entry = ENTRY_FIRST_TIME;}
else if (strFirstChar == "r"){ WriteToDebug("Entry is Resume"); AICC_Entry = ENTRY_RESUME;}
else{ WriteToDebug("ERROR - entry not found"); AICC_SetError(AICC_ERROR_INVALID_ENTRY, "Invalid lesson status received from LMS");}
}
}
function AICC_ConvertAICCStatusIntoLocalStatus(strFirstCharOfAICCStatus){ WriteToDebug("In AICC_ConvertAICCStatusIntoLocalStatus, strFirstCharOfAICCStatus=" + strFirstCharOfAICCStatus); if (strFirstCharOfAICCStatus == "p"){ WriteToDebug("Status is Passed"); return LESSON_STATUS_PASSED;}
else if (strFirstCharOfAICCStatus == "f"){ WriteToDebug("Status is Failed"); return LESSON_STATUS_FAILED;}
else if (strFirstCharOfAICCStatus == "c"){ WriteToDebug("Status is Completed"); return LESSON_STATUS_COMPLETED;}
else if (strFirstCharOfAICCStatus == "b"){ WriteToDebug("Status is Browsed"); return LESSON_STATUS_BROWSED;}
else if (strFirstCharOfAICCStatus == "i"){ WriteToDebug("Status is Incomplete"); return LESSON_STATUS_INCOMPLETE;}
else if (strFirstCharOfAICCStatus == "n"){ WriteToDebug("Status is Not Attempted"); return LESSON_STATUS_NOT_ATTEMPTED;}
else{ WriteToDebug("ERROR - status not found"); AICC_SetError(SCORM_ERROR_INVALID_STATUS, "Invalid status"); return LESSON_STATUS_NOT_ATTEMPTED;}
}
function AICC_TranslateAudio(strAudio){ WriteToDebug("In AICC_TranslateAudio, strAudio=" + strAudio); var intTempPreference = parseInt(strAudio, 10); WriteToDebug("intTempPreference=" + intTempPreference); if (intTempPreference > 0 && intTempPreference <= 100){ WriteToDebug("Returning On"); AICC_AudioPlayPreference = PREFERENCE_ON; AICC_intAudioVolume = intTempPreference;}
else if (intTempPreference == 0){ WriteToDebug("Returning Default"); AICC_AudioPlayPreference = PREFERENCE_DEFAULT;}
else if (intTempPreference < 0) { WriteToDebug("returning Off"); AICC_AudioPlayPreference = PREFERENCE_OFF;}
else{ WriteToDebug("Error: Invalid preference"); AICC_SetError(AICC_ERROR_INVALID_PREFERENCE, "Invalid audio preference received from LMS");}
}
function AICC_TranslateSpeed(intAICCSpeed){ WriteToDebug("In AICC_TranslateSpeed, intAICCSpeed=" + intAICCSpeed); var intPercentOfMax; if ( ! ValidInteger(intAICCSpeed) ){ WriteToDebug("ERROR - invalid integer"); AICC_SetError(AICC_ERROR_INVALID_SPEED, "Invalid speed preference received from LMS - not an integer"); return;}
intAICCSpeed = parseInt(intAICCSpeed, 10)
if (intAICCSpeed < -100 || intAICCSpeed > 100){ WriteToDebug("ERROR - out of range"); AICC_SetError(AICC_ERROR_INVALID_SPEED, "Invalid speed preference received from LMS - out of range"); return;}
AICC_Speed = intAICCSpeed; intPercentOfMax = (intAICCSpeed + 100) / 2; intPercentOfMax = parseInt(intPercentOfMax, 10); WriteToDebug("Returning " + intPercentOfMax); AICC_intPercentOfMaxSpeed = intPercentOfMax;}
function AICC_FormatObjectives(strObjectivesFromLMS){ WriteToDebug("In AICC_FormatObjectives, strObjectivesFromLMS=" + strObjectivesFromLMS); var aryLines; var i; var strLineName; var strLineValue; var strLineType; var strIndex; aryLines = strObjectivesFromLMS.split("\n"); for (i=0; i < aryLines.length; i++){ WriteToDebug("Extracting Index From Line: " + aryLines[i]); strLineName = GetNameFromAICCLine(aryLines[i]); strIndex = GetIndexFromAICCName(strLineName); strIndex = parseInt(strIndex, 10); WriteToDebug("strIndex: " + strIndex); AICC_aryObjectivesRead[parseInt(strIndex, 10)] = new Array(3);}
for (i=0; i < aryLines.length; i++){ WriteToDebug("Populating Line " + aryLines[i]); strLineName = GetNameFromAICCLine(aryLines[i]); strLineValue = GetValueFromAICCLine(aryLines[i]); strIndex = GetIndexFromAICCName(strLineName); strIndex = strIndex; WriteToDebug("strLineName: " + strLineName); WriteToDebug("strLineValue: " + strLineValue); WriteToDebug("strIndex: " + strIndex); strLineType = strLineName.substr(0,4).toLowerCase(); if (strLineType == "j_id"){ WriteToDebug("Found ID"); AICC_aryObjectivesRead[parseInt(strIndex, 10)][AICC_OBJ_ARRAY_ID] = strLineValue;}
else if (strLineType =="j_st"){ WriteToDebug("Found Status"); AICC_aryObjectivesRead[parseInt(strIndex, 10)][AICC_OBJ_ARRAY_STATUS] = AICC_ConvertAICCStatusIntoLocalStatus(strLineValue.charAt(0).toLowerCase());}
else if (strLineType == "j_sc"){ WriteToDebug("Found Score"); AICC_aryObjectivesRead[parseInt(strIndex, 10)][AICC_OBJ_ARRAY_SCORE] = AICC_ExtractSingleScoreFromObjective(strLineValue);}
else{ WriteToDebug("WARNING - unidentified objective data found - " + aryLines[i]);}
}
}
function AICC_ExtractSingleScoreFromObjective(strLineValue){ WriteToDebug("In AICC_ExtractSingleScoreFromObjective, strLineValue=" + strLineValue); var aryParts; aryParts = strLineValue.split(";"); aryParts = aryParts[0].split(","); WriteToDebug("returning " + aryParts[0]); return aryParts[0];}
function FindObjectiveById(strID, aryObjectives){ WriteToDebug("In FindObjectiveById, strID=" + strID); for (var i=0; i <= aryObjectives.length; i++){ WriteToDebug("Searching element " + i); if (aryObjectives[i]){ WriteToDebug("Element Exists"); if (aryObjectives[i][AICC_OBJ_ARRAY_ID].toString() == strID.toString()){ WriteToDebug("Element matches"); return i;}
}
}
return null;}
function AICC_FindInteractionIndexFromID(strInteractionID){ WriteToDebug("AICC_FindInteractionIndexFromID - AICC does not support interaction retrieval, returning null"); return null;}
function AICC_GetInteractionType(strInteractionID)
{ WriteToDebug("AICC_GetInteractionType - AICC does not support interaction retrieval, returning empty string"); return '';}
function AICC_GetInteractionTimestamp(strInteractionID)
{ WriteToDebug("AICC_GetInteractionTimestamp - AICC does not support interaction retrieval, returning empty string"); return '';}
function AICC_GetInteractionCorrectResponses(strInteractionID)
{ WriteToDebug("AICC_GetInteractionCorrectResponses - AICC does not support interaction retrieval, returning empty array"); return new Array();}
function AICC_GetInteractionWeighting(strInteractionID)
{ WriteToDebug("AICC_GetInteractionWeighting - AICC does not support interaction retrieval, returning empty string"); return '';}
function AICC_GetInteractionLearnerResponses(strInteractionID)
{ WriteToDebug("AICC_GetInteractionLearnerResponses - AICC does not support interaction retrieval, returning empty array"); return new Array();}
function AICC_GetInteractionResult(strInteractionID)
{ WriteToDebug("AICC_GetInteractionResult - AICC does not support interaction retrieval, returning empty string"); return '';}
function AICC_GetInteractionLatency(strInteractionID)
{ WriteToDebug("AICC_GetInteractionDescription - AICC does not support interaction retrieval, returning empty string"); return '';}
function AICC_GetInteractionDescription(strInteractionID)
{ WriteToDebug("AICC_GetInteractionDescription - AICC does not support interaction retrieval, returning empty string"); return '';}
function FormAICCPostData(){ WriteToDebug("In FormAICCPostData"); var strAICCData = ""; strAICCData += "[Core]\r\n"; strAICCData += "Lesson_Location=" + AICC_Lesson_Location + "\r\n"; strAICCData += "Lesson_Status=" + AICC_TranslateLessonStatusToAICC() + "\r\n"; strAICCData += "Score=" + AICC_TranslateScoreToAICC() + "\r\n"; strAICCData += "Time=" + AICC_TranslateTimeToAICC() + "\r\n"; strAICCData += "[Comments]\r\n" + AICC_TranslateCommentsToAICC() + "\r\n"; strAICCData += "[Objectives_Status]\r\n" + AICC_TranslateObjectivesToAICC() + "\r\n"; strAICCData += "[Student_Preferences]\r\n"; strAICCData += "Audio=" + AICC_TranslateAudioToAICC() + "\r\n"; strAICCData += "Language=" + AICC_Language + "\r\n"; strAICCData += "Speed=" + AICC_TranslateSpeedToAICC() + "\r\n"; strAICCData += "Text=" + AICC_TranslateTextToAICC() + "\r\n"; strAICCData += "[Core_Lesson]\r\n"; strAICCData += AICC_Data_Chunk; WriteToDebug("FormAICCPostData returning: " + strAICCData); return strAICCData;}
function AICC_TranslateLessonStatusToAICC(){ WriteToDebug("In AICC_TranslateLessonStatusToAICC"); switch (AICC_Status){ case LESSON_STATUS_PASSED:
WriteToDebug("Status is passed"); AICC_Lesson_Status = "P"; break; case LESSON_STATUS_COMPLETED:
WriteToDebug("Status is completed"); AICC_Lesson_Status = "C"; break; case LESSON_STATUS_FAILED:
WriteToDebug("Status is failed"); AICC_Lesson_Status = "F"; break; case LESSON_STATUS_INCOMPLETE:
WriteToDebug("Status is incomplete"); AICC_Lesson_Status = "I"; break; case LESSON_STATUS_BROWSED:
WriteToDebug("Status is browsed"); AICC_Lesson_Status = "B"; break; case LESSON_STATUS_NOT_ATTEMPTED:
WriteToDebug("Status is not attempted"); AICC_Lesson_Status = "N"; break;}
return AICC_Lesson_Status;}
function AICC_TranslateScoreToAICC(){ WriteToDebug("In AICC_TranslateScoreToAICC"); AICC_Score = AICC_fltScoreRaw; if (AICC_LMS_Version < 3 && AICC_fltScoreRaw != ""){ AICC_Score = parseInt(AICC_Score, 10);}
if ( (AICC_REPORT_MIN_MAX_SCORE === undefined || AICC_REPORT_MIN_MAX_SCORE === null || AICC_REPORT_MIN_MAX_SCORE === true) &&
(AICC_LMS_Version >= 3 ) ){ WriteToDebug("Using max and min values if available."); if ((AICC_fltScoreMax != "") || (AICC_fltScoreMin != "")) { WriteToDebug("Appending Max and Min scores"); AICC_Score += "," + AICC_fltScoreMax + "," + AICC_fltScoreMin;}
}
WriteToDebug("AICC_Score=" + AICC_Score); return AICC_Score;}
function AICC_TranslateTimeToAICC(){ WriteToDebug("In AICC_TranslateTimeToAICC"); var strTime; strTime = ConvertMilliSecondsToSCORMTime(AICC_intSessionTimeMilliseconds, false); return strTime;}
function AICC_TranslateCommentsToAICC(){ WriteToDebug("In AICC_TranslateCommentsToAICC"); var strComments = ""; for (var i=0; i < AICC_aryCommentsFromLearner.length; i++){ strComments += "<" + (i+1) + ">" + AICC_aryCommentsFromLearner[i] + "<e." + (i+1) + ">";}
return strComments;}
function AICC_TranslateObjectivesToAICC(){ WriteToDebug("In AICC_TranslateObjectivesToAICC"); var strObjectives = ""; for (var i=0; i<AICC_aryObjectivesWrite.length; i++){ WriteToDebug("Looking at index: " + i); if (AICC_aryObjectivesWrite[i]){ WriteToDebug("Element " + i + " exists, id=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_ID] + ", score=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_SCORE] + ", status=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_STATUS]); strObjectives += "J_ID." + (i+1) + "=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_ID] + "\r\n"; if (AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_SCORE] != ""){ strObjectives += "J_Score." + (i+1) + "=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_SCORE] + "\r\n";}
if (AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_STATUS] != ""){ strObjectives += "J_Status." + (i+1) + "=" + AICC_aryObjectivesWrite[i][AICC_OBJ_ARRAY_STATUS] + "\r\n";}
}
}
return strObjectives;}
function AICC_TranslateAudioToAICC(){ WriteToDebug("In AICC_TranslateAudioToAICC"); var strReturn; switch (AICC_AudioPlayPreference){ case PREFERENCE_ON:
WriteToDebug("Preference is ON"); strReturn = AICC_intAudioVolume; break; case PREFERENCE_DEFAULT:
WriteToDebug("Preference is DEFAULT"); strReturn = 0; break; case PREFERENCE_OFF:
WriteToDebug("Preference is OFF"); strReturn = -1; break;}
return strReturn;}
function AICC_TranslateSpeedToAICC(){ WriteToDebug("In AICC_TranslateSpeedToAICC"); var intAICCSpeed; intAICCSpeed = (AICC_intPercentOfMaxSpeed * 2) - 100; return intAICCSpeed;}
function AICC_TranslateTextToAICC(){ WriteToDebug("In AICC_TranslateTextToAICC"); var strPreference = 0; if (AICC_TextPreference == PREFERENCE_OFF){ strPreference = -1;}
else if (AICC_TextPreference == PREFERENCE_DEFAULT){ strPreference = 0;}
else if (AICC_TextPreference == PREFERENCE_ON){ strPreference = 1;}
return strPreference;}
function FormAICCInteractionsData(){ WriteToDebug("In FormAICCInteractionsData"); var strInteractions; var strDate; var strTime; var strResult = ""; strInteractions = '"course_id","student_id","lesson_id","date","time","interaction_id",' + '"objective_id","type_interaction","correct_response","student_response",' + '"result","weighting","latency"\r\n'; var blnCorrect = ""; var strResponse = ""; var strCorrectResponse = ""; var strLatency = ""; for (var i=0; i < AICC_aryInteractions.length; i++){ blnCorrect = AICC_aryInteractions[i][AICC_INTERACTIONS_CORRECT]; strResult = ""; if (blnCorrect == true || blnCorrect == INTERACTION_RESULT_CORRECT){ strResult = AICC_RESULT_CORRECT;}
else if (blnCorrect == "false" || blnCorrect == INTERACTION_RESULT_WRONG){ strResult = AICC_RESULT_WRONG;}
else if (blnCorrect == INTERACTION_RESULT_UNANTICIPATED){ strResult = AICC_RESULT_UNANTICIPATED;}
else if (blnCorrect == INTERACTION_RESULT_NEUTRAL){ strResult = AICC_RESULT_NEUTRAL;}
strDate = ConvertDateToCMIDate(AICC_aryInteractions[i][AICC_INTERACTIONS_TIME_STAMP]); strTime = ConvertDateToCMITime(AICC_aryInteractions[i][AICC_INTERACTIONS_TIME_STAMP]); if (blnUseLongInteractionResultValues == true){ strResponse = AICC_aryInteractions[i][AICC_INTERACTIONS_RESPONSE_LONG]; strCorrectResponse = AICC_aryInteractions[i][AICC_INTERACTIONS_CORRECT_RESPONSE_LONG];}
else{ strResponse = AICC_aryInteractions[i][AICC_INTERACTIONS_RESPONSE]; strCorrectResponse = AICC_aryInteractions[i][AICC_INTERACTIONS_CORRECT_RESPONSE];}
strResponse = new String(strResponse); strCorrectResponse = new String(strCorrectResponse); var tempLatency = AICC_aryInteractions[i][AICC_INTERACTIONS_LATENCY]; if (tempLatency !== null && tempLatency !== undefined && tempLatency != ""){ strLatency = ConvertMilliSecondsToSCORMTime(tempLatency, false);}
strInteractions += '"' + AICC_CourseID.replace("\"", "") + '","' + AICC_Student_ID.replace("\"", "") + '","' + AICC_LESSON_ID.replace("\"", "") + '","' + strDate + '","' + strTime + '","' + AICC_aryInteractions[i][AICC_INTERACTIONS_ID].replace("\"", "") + '",' + '""' + ',"' + AICC_aryInteractions[i][AICC_INTERACTIONS_TYPE] + '","' + strCorrectResponse.replace("\"", "") + '","' + strResponse.replace("\"", "") + '","' + strResult + '","' + AICC_aryInteractions[i][AICC_INTERACTIONS_WEIGHTING] + '","' + strLatency + '"\r\n';}
return strInteractions;}
function DisplayAICCVariables(){ var strAlert = ""; strAlert += "AICC_Student_ID = " + AICC_Student_ID + "\n"; strAlert += "AICC_Student_Name = " + AICC_Student_Name + "\n"; strAlert += "AICC_Lesson_Location = " + AICC_Lesson_Location + "\n"; strAlert += "AICC_Score = " + AICC_Score + "\n"; strAlert += "AICC_Credit = " + AICC_Credit + "\n"; strAlert += "AICC_Lesson_Status = " + AICC_Lesson_Status + "\n"; strAlert += "AICC_Time = " + AICC_Time + "\n"; strAlert += "AICC_Mastery_Score = " + AICC_Mastery_Score + "\n"; strAlert += "AICC_Lesson_Mode = " + AICC_Lesson_Mode + "\n"; strAlert += "AICC_Max_Time_Allowed = " + AICC_Max_Time_Allowed + "\n"; strAlert += "AICC_Time_Limit_Action = " + AICC_Time_Limit_Action + "\n"; strAlert += "AICC_Audio = " + AICC_Audio + "\n"; strAlert += "AICC_Speed = " + AICC_Speed + "\n"; strAlert += "AICC_Language = " + AICC_Language + "\n"; strAlert += "AICC_Text = " + AICC_Text + "\n"; strAlert += "AICC_Launch_Data = " + AICC_Launch_Data + "\n"; strAlert += "AICC_Data_Chunk = " + AICC_Data_Chunk + "\n"; strAlert += "AICC_Comments = " + AICC_Comments + "\n"; strAlert += "AICC_Objectives = " + AICC_Objectives + "\n"; alert(strAlert)
}
